Это все довольно простые вещи:
# make sure your notion of the remote is up to date
git fetch origin
# create and check out a branch, at the same place as the remote master branch
git checkout -b origin-master origin/master
# merge your local master
git merge master
# test, edit away, hack hack hack
git add ...
git commit ...
# push back to origin
git push origin origin-master:master
Примечания по терминологии:
Вытягивание - это комбинация извлечения и объединения.Когда вы работаете с локальными филиалами, вам не нужно извлекать, поэтому вы объединяете, а не вытягиваете.
HEAD не означает, что вы думаете, что это означает.(Может быть, вы человек из cvs / svn.) HEAD - это просто извлеченный в данный момент коммит (на который обычно ссылается имя ветки).Таким образом, вы не объединяете HEAD, вы объединяете эту ветку.Я назвал это мастером здесь.
Что касается вашего вопроса о лучших рабочих процессах, чтобы сделать то же самое ... ну, на это довольно сложно ответить.Ваши цели немного двусмысленны.Вы сказали, что «медленно» синхронизируются и ссылаются на «наконец-то объединить это», но описанные вами шаги делают все сразу, так что… ну, это все объединено.Там нечего делать позже.Если вы хотите делать это постепенно, вы можете просто повторить шаги, которые я дал, выбирая промежуточные коммиты в истории, чтобы каждый раз сливаться.Также немного неясно, в каком направлении вы хотите объединить. Может быть, вы на самом деле хотели начать с вашей ветви и объединить в нее удаленные элементы?
git checkout -b master-merging master
git fetch origin
git merge origin/master~20 # 20 commits before origin/master
# test, hack, commit
git merge origin/master~10 # 10 commits before origin/master
# test, hack, commit
git merge origin/master
# test, hack, commit, push...