tl; dr:
запустите git fetch
, чтобы получить последние изменения, затем запустите git rebase master
, чтобы обновить ветку до последних изменений в master.
Теперь, чтобыответьте на ваш вопрос: да, git pull origin master
действительно объединяет их.
Однако вам, вероятно, нужно применить коммиты от мастера к вашей ветке и повторно применить ваши поверх них.
Это известно как ребаз.Руководство по git-rebase (к которому вы можете получить доступ прямо из терминала с помощью git rebase --help
, содержит множество полезных диаграмм, помогающих понять, как выглядит график фиксации.
Это один из них:
Assume the following history exists and the current branch is "topic":
A---B---C topic
/
D---E---F---G master
From this point, the result of the following command:
git rebase master
would be:
A'--B'--C' topic
/
D---E---F---G master
Если вы используете git pull
, ваш график действительно очень быстро испортится, особенно если вы начнете использовать его для обновления локальных веток новыми коммитами из удаленного репо, потому что тогда вы будете создавать слияниекоммит из ветви к себе, что не нужно и часто вводит в заблуждение.
В большинстве этих ситуаций можно избежать, запустив git pull --rebase
или просто git pull -r
вместо git pull.
Совет:используйте git log --oneline --graph
как можно чаще, чтобы вы могли привыкнуть к графику репозитория и как на него влияет каждая команда git.
Примечание: будьте осторожны при слишком глубокой перебазировке.Руководство по перебазировке.