Skip to main content

Що означає стан detached HEAD?

Detached HEAD (відʼєднаний HEAD) - це стан у Git, коли HEAD вказує напряму на конкретний коміт, а не на гілку.

Простіше: ти «дивишся» на старий коміт без прив'язки до гілки.


Як зазвичай працює HEAD

У звичайному режимі:

HEAD → main → останній коміт

Ти перебуваєш на гілці, і нові коміти спокійно додаються до її історії.


Що відбувається в detached HEAD

Наприклад, ти виконав:

bash
git checkout a1b2c3d

Тепер:

HEAD → коміт a1b2c3d
  • HEAD більше не вказує на гілку
  • Git попереджає, що ти в стані detached HEAD

Чому це небезпечно

У detached HEAD можна:

  • читати код
  • запускати проект
  • тимчасово експериментувати

Але якщо ти зробиш коміт:

  • він не належатиме жодній гілці
  • при перемиканні на іншу гілку цей коміт може загубитися

Як правильно працювати в detached HEAD

Якщо ти зрозумів, що хочеш зберегти зміни:

bash
git switch -c new-branch

Так ти:

  • створиш нову гілку
  • «прикріпиш» коміти до історії

Коли detached HEAD - це нормально

Це нормальний стан, якщо ти:

  • дивишся стару версію проекту
  • перевіряєш баг у минулому
  • запускаєш тести на конкретному коміті
  • вивчаєш історію

Як вийти з detached HEAD

Просто повернутися на гілку:

bash
git switch main

або

bash
git checkout main

Часта помилка на співбесіді

«Detached HEAD - це помилка» - неправильно. Це режим, а не помилка. Помилка - робити коміти і не зберегти їх.


Коротка відповідь для співбесіди

Detached HEAD - це стан, коли HEAD вказує напряму на коміт, а не на гілку, тому нові коміти не зберігаються в історії гілок, якщо не створити нову гілку.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.