git HEAD

По принцип всеки бранч си има свой HEAD. Това е указател към последният къмит на даденият бранч.
Ако отидем в .git\refs\heads
ще видим по един файл за всеки бранч, който имаме в репото.
Ако ги отворим, ще видим просто един SHA номер, който е всъщност SHA-то на последният къмит от този бранч. Условно можем да си представим всеки от тези файлове като един вид HEAD-ове на ниво бранч.

Но има и един HEAD, така да го наречем „глобален HEAD“, който показва кой е чекаутнатият (ативният) в момента бранч.

Това е файлът .git/HEAD

Toй не съдържа SHA-та като другите хедове, а само пътят до този от тях, който сме чекаутнали. Напр:
ref: refs/heads/master
или
ref: refs/heads/dev

HEAD is a reference to the last commit in the currently check-out branch.
OK, само дето този реферънс е всъщност един път до файла за даденият бранч, в който файл е SHA-то на последният къмит.

Съответно, когато чекаутнеш не към бранч, а към къмит,
и влезеш в detached HEAD state,
този .get/HEAD файл ще съдържа въпросният път (
ref: refs/heads/dev ), а SHA-то на къмита, към който си чекаутнал. Напр: 5d1458e3132ffb067724a55521f6b3879ad232d9