В соответствии с документацией git pull выполняет git fetch, затем слияние git, однако в этом случае выполнение git pull начальный мастер должен выполнить 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
Как видно, притяжение фактически обновило мою ведущую ветвь с новыми фиксациями (s) от удаленного источника, но мой локальный источник/мастер все еще там, где он был. Заставляя меня сделать следующее
git fetch origin master
git checkout origin/master
git log --pretty=format:'%h' -n 1
2222222
Является ли это правильным поведением для git pull или я могу настроить что-то пропущенное? Я просмотрел страницу git pull man и не видел ничего, что предлагало это, но я, возможно, пропустил это.