Согласно документации, git pull выполняет git fetch , затем слияние git, однако в этом случае выполняется git pull origin master должен выполнять мастер исходного кода git fetch , верно? Однако, похоже, этого не происходит. Вот пример.
Предположим, что мой удаленный мастер-источник (в моем случае на GitHub) имеет следующую историю:
commit 1111111 : my first commit
commit 2222222 : a commit from someone else
и у меня есть только моя первая локальная фиксация, как показано ниже.
git checkout master
git log --pretty=format:'%h' -n 1
1111111
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
Отсюда я тяну и смотрю на результаты как следует:
git checkout master
git pull origin master
git log --pretty=format:'%h' -n 1
2222222
git checkout origin/master
git log --pretty=format:'%h' -n 1
1111111
Как можно видеть, pull на самом деле обновил мою главную ветку новыми фиксациями из удаленного источника, но мой локальный источник / мастер все еще там, где он был. Заставляет меня сделать следующее
git fetch origin master
git checkout origin/master
git log --pretty=format:'%h' -n 1
2222222
Это правильное поведение для git pull или я могу что-то пропустить? Я просмотрел страницу руководства git pull и не нашел ничего, что предлагало бы это, но, возможно, я это пропустил.