Хватит печатать git pull origin master
. Это дает команду git перенести содержимое главной ветки исходного репозитория в вашу локальную ветку, полностью обходя ветку удаленного отслеживания. Вместо этого вы должны просто набрать git pull
. Это извлечет ветку, установленную в branch.master.merge
(при условии, что «master» извлечен) из удаленного репозитория, и использует ее для обновления ветки удаленного отслеживания, а затем объединит ветку удаленного отслеживания с вашей локальной ветвью. 1004 *
Чтобы выяснить, как это работает, git pull <args>
запускает git fetch <args>
, а затем использует git-merge для объединения выбранных веток (веток) с текущей веткой. Если вы укажете git fetch
, git получит удаленный по умолчанию ветвь и обновит ветви удаленного отслеживания, после чего git-pull объединится в правильную ветку. Но если вы укажете git fetch origin master
, git извлечет основную ветку исходного репо и сохранит ее в FETCH_HEAD без обновления веток удаленного отслеживания. Вы можете проверить это самостоятельно, набрав git fetch origin master
(при условии, что у вас нет удаленных коммитов). Конечным результатом выборки должна быть строка типа
* branch master -> FETCH_HEAD
Это говорит о том, что удаленная ветка "master" была выбрана и сохранена в FETCH_HEAD. С другой стороны, если вы просто наберете git fetch origin
, вы должны увидеть что-то похожее на
* branch master -> origin/master
Это говорит о том, что удаленная ветвь "master" была выбрана и сохранена в локальной ветке удаленного отслеживания "origin / master".