Appearance
HEAD - Голова
Что такое HEAD
? HEAD
– это указатель в Git
, который показывает на текущий коммит в репозитории. Это тот коммит, от которого будут проходить дальнейшие изменения или коммиты.
Работа с HEAD и ветками
- Переключение между ветками: Когда вы переключаетесь между ветками с помощью
git checkout
,HEAD
автоматически указывает на последний коммит выбранной ветки. - Пример изменений: Создание файла или изменение в существующем файле, после чего выполнение
git add
, а затемgit commit
, приведет к перемещениюHEAD
в соответствии с последним коммитом на мастер ветке.
Отсоединенный HEAD (Detached HEAD)
- Что происходит при отсоединении
HEAD
? Если вы перейдете напрямую к определённому коммиту, а не к ветке,HEAD
окажется в состоянии "отсоединенный". В этом случае, он указывает непосредственно на коммит, а не на ветку. - Просмотр изменений в отсоединенном состоянии: Вы можете перейти к конкретному коммиту, чтобы изучить состояние репозитория в точке этого коммита.
HEAD
будет указывать на выбранный коммит без привязки к ветке.
Внутренняя структура Git и HEAD
- Файл
.git/HEAD
: Внутри скрытой папки.git
находится файлHEAD
, содержащий сведения о текущем положенииHEAD
. Используя команды типаcat .git/HEAD
, можно узнать, на какой коммит или ветку в данный момент указываетHEAD
. - Возвращение к ветке: Чтобы выйти из состояния
Detached HEAD
и вернуться к работе с ветками, достаточно выполнитьgit checkout
на имя ветки, например, вmaster
. Таким образом,HEAD
снова будет указывать на последний коммит активной ветки.