Ответ
HEAD в Git — это специальный указатель, который всегда ссылается на текущий, активный коммит в рабочем дереве. Это «снимок», на основе которого вы работаете.
Два состояния HEAD:
- Привязан к ветке (обычный режим):
HEADуказывает на ветку (например,refs/heads/main), а та — на последний коммит. Новые коммиты двигают ветку иHEADвместе. - Отсоединённый HEAD (detached HEAD):
HEADуказывает напрямую на конкретный коммит, а не на ветку. Это происходит при checkout тега или конкретного хеша коммита.
Практические команды:
# Узнать, на какой коммит указывает HEAD
git rev-parse HEAD
# Узнать, на какую ветку указывает HEAD (не сработает в detached состоянии)
git symbolic-ref HEAD
# Выйти из состояния detached HEAD, создав новую ветку от текущего коммита
git switch -c new-branch-name
Важно: Прямые коммиты в состоянии detached HEAD могут быть потеряны, если не создать от них ветку.