Влияет ли это на указатель HEAD?
Это легко узнать самостоятельно.В локальном клоне некоторого git-репо создайте новую ветку (чтобы вы могли бездельничать, не подвергая опасности свою работу), и убедитесь, что она обновлена с помощью пульта:
git checkout -b test-branch
git pull
Далеевзгляните на HEAD в этой ветке:
git log
Обратите внимание на значение HEAD, которое является самым последним коммитом.Теперь измените HEAD с помощью команды reset
, чтобы вернуться к нескольким коммитам:
git reset --hard HEAD~3
Теперь вы намеренно изменили HEAD - это то, что reset
делает .Синопсис команды reset
: Сброс текущего HEAD в указанное состояние .То есть вы только что вернулись во времени за 3 коммита до последнего коммита.Давайте снова посмотрим на HEAD:
git log
Вы можете видеть, что HEAD изменился по сравнению с тем, что было раньше.Теперь используйте pull
, чтобы добавить «новые» коммиты с пульта обратно в вашу ветку, и снова посмотрите на HeAD:
git pull
git log
Вы должны увидеть, что HEAD вернулся туда, где он был до reset
, и это должно показать вам, что git pull
меняет HEAD и почему.
HEAD не является особенным по любой причине, кроме как для имени последнего коммита.Все, что вы делаете, изменяет то, что git
видит как последний коммит в вашей ветке, изменяет значение HEAD.