Що таке HEAD у Git?
HEAD у Git - це вказівник на поточне місце в історії комітів, тобто на той коміт, з яким ти зараз працюєш.
Простіше: HEAD показує, "де ти зараз перебуваєш" у репозиторії.
На що саме вказує HEAD
У звичайній ситуації:
- HEAD вказує на поточну гілку
- гілка вказує на останній коміт
- отже, HEAD опосередковано вказує на останній коміт цієї гілки
Ланцюжок виглядає так:
HEAD → main → останній коміт
Як це зрозуміти на прикладі
Якщо ти перебуваєш у гілці main і робиш новий коміт:
- коміт додається у кінець гілки
- гілка
mainзсувається вперед - HEAD залишається на гілці
main
Detached HEAD (відокремлений HEAD)
Іноді HEAD може вказувати не на гілку, а безпосередньо на коміт. Це називається detached HEAD.
Наприклад:
git checkout a1b2c3dУ цьому випадку:
HEAD → коміт a1b2c3d
Важливо для співбесіди:
- коміти в detached HEAD не належать гілці
- якщо не створити гілку, їх легко втратити
Навіщо взагалі потрібен HEAD
HEAD потрібен, щоб Git розумів:
- з якого стану брати файли
- куди додавати нові коміти
- яку версію проекту показати в робочій директорії
Як побачити HEAD
git statusПокаже поточну гілку (отже, туди вказує HEAD).
git log --oneline --decorateПокаже, де перебуває HEAD і гілки в історії.
Часта помилка кандидатів
Неправильно: «HEAD - це останній коміт» Правильно: HEAD - це вказівник, який зазвичай вказує на останній коміт поточної гілки, але не завжди.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.