Вы должны понимать, что репозиторий Git - это не просто дерево каталогов и файлов, но также хранит историю этих деревьев, которая может содержать ветви и слияния.
При извлечении из репозитория вы скопируете все или некоторые из его ветвей в свой репозиторий. Затем они находятся в вашем репозитории как «ветви удаленного отслеживания», например, ветви с такими же именами remotes/origin/master.
Выборка новых коммитов из удаленного репозитория ничего не изменит в вашей локальной рабочей копии.
Ваша рабочая копия обычно получает извлеченный коммит HEAD. Этот коммит обычно является наконечником одного из ваших местных филиалов.
Я думаю, что вы хотите обновить свою локальную ветвь (или, может быть, все локальные ветки?) До соответствующей удаленной ветки, а затем проверить последнюю ветку.
Чтобы избежать любых конфликтов с вашей рабочей копией (которые могут иметь локальные изменения), сначала очистите все, что не является версионным (используя git clean). Затем вы проверяете локальную ветвь, соответствующую удаленной ветке, которую хотите обновить, и используете git resetдля переключения на извлеченную удаленную ветку. ( git pullбудет включать все обновления удаленной ветки в вашей локальной, которые могут делать то же самое, или создавать коммит слияния, если у вас есть локальные коммиты.)
(Но тогда вы действительно потеряете все локальные изменения - как в рабочей копии, так и в локальных коммитах. Убедитесь, что вы действительно этого хотите - в противном случае лучше использовать новую ветку, это сохранит ваши локальные коммиты. И используйте git stashдля сохранения изменений, которые еще не зафиксированы. .)
Изменить:
Если у вас есть только одна локальная ветвь и вы отслеживаете одну удаленную ветку, все, что вам нужно сделать, это
git pull
из рабочего каталога.
Это извлечет текущую версию всех отслеживаемых удаленных веток и обновит текущую ветку (и рабочий каталог) до текущей версии удаленной ветви, которую она отслеживает.