Во время описанного выше процесса я не видел, чтобы удаленный источник отправлялся синхронизироваться с удаленным восходящим потоком.
В описанном вами рабочем процессе ваш origin/master
ветвь никогда не синхронизируется с upstream/master
.
При работе с вышестоящим репозиторием вам потребуется периодически повторять синхронизацию локальной копии репозитория с вышестоящим, чтобы убедиться, что вы работаете с текущей версиейкод, необходимый для корректного применения ваших изменений.Это проще всего, если вы не вносите изменения в ветку master
в своей локальной копии, а вместо этого всегда работаете с веткой функций.В этом случае ваш рабочий процесс выглядит примерно так:
# update your local copies of the remote repositories
git remote update
# start working on your code, using the `upstream/master` branch
# as the base.
git checkout -b my-feature upstream/master
[...work happens here...]
# push your changes to your github fork of the upstream repository
git push origin my-feature
На данный момент вы можете отправить запрос на выборку с origin/my-feature
до upstream/master
.Когда вы в следующий раз захотите внести изменение, вы последуете тому же процессу, снова начав с того, что основываете свою работу на текущей версии ветки upstream/master
.
Вы заметите, что в этом рабочем процессе мы обычно игнорируеми ваша локальная ветка master
и master
ветка вашего форка на GitHub (он же origin/master
).
Другой вопрос, как я могу выполнять над всеми операциями в одном месте (gitкоманда или рабочий стол клиента github)?В настоящее время я делаю кое-что здесь, а другое - там.
Люди GitHub предоставляют инструмент командной строки hub , который может выступать в качестве оболочки для git
, предоставляя вамединый интерфейс для операций git
и GitHub.При правильной установке вы можете запустить git pull-request
, чтобы создать запрос на извлечение.