Описание тега git-detached-head
В репозитории gitотсоединенная HEAD - это режим, в которомHEAD
содержит необработанный хэш-идентификатор фиксации. Этот режим или состояние, возможно, лучше всего определить, противопоставив его более типичному присоединенному состоянию HEAD. Когда прикреплен HEAD репозитория, специальный файл.git/HEAD
содержит имя текущей ветки. Это результат работыgit checkout branch-name
, который помещает вас в ветку с именем branch-name
. То есть ваш HEAD обычно прикреплен к некоторой ветке, так что Git знает, в какой ветке вы находитесь. Но HEAD Git легко отсоединяется от этой ветки, так что он может перейти в другую ветку или даже напрямую в коммит.
Находясь в этом отдельном режиме HEAD, Git сообщит вам, что вы не находитесь ни в какой ветке. Например, бегgit branch
может напечатать:
* (HEAD detached at 3e5524907)
master
а также git status
скажу HEAD detached ...
, скорее, чем on branch ...
(см. git-status).
Отсоединенный HEAD не является состоянием ошибки, но это также не типичный режим, в котором кто-то работает в репозитории. Чаще всего вы увидите это в одной из следующих ситуаций:
- во время приостановленной интерактивной перебазировки (см. git-rebase), когда вы выбираете редактирование некоторых коммитов;
- во время любой перезагрузки, которая приостанавливается из-за конфликтов;
- во время нормальной работы большинства подмодулей (см. git-submodules).
Вы также попадете в состояние "отсоединенной HEAD", проверив любую фиксацию, используя любое имя, которое само по себе не является именем ветки. Например,git checkout origin/master
часто проверяет тот же коммит, что иgit checkout master
, но с тех пор origin/master
- это имя удаленного отслеживания, а не имя ветки, вы будете в состоянии "отключенной HEAD".
Самый простой способ восстановления, если вы неожиданно оказались в этом состоянии - например, у вас нет переустановки для продолжения (если вы не уверены, используйте git status
чтобы узнать) - просто проверить ветку по имени, например, git checkout master
. Однако, если вы сделали новые коммиты в этом состоянии, подумайте о создании имени ветки для их записи.