git pull origin master не обновляет origin / master?

Согласно документации, 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 и не нашел ничего, что предлагало бы это, но, возможно, я это пропустил.

36
задан Kenneth Baltrinic 2 January 2012 в 19:44
поделиться