Що означає стан detached HEAD?
Detached HEAD (відʼєднаний HEAD) - це стан у Git, коли HEAD вказує напряму на конкретний коміт, а не на гілку.
Простіше: ти «дивишся» на старий коміт без прив'язки до гілки.
Як зазвичай працює HEAD
У звичайному режимі:
HEAD → main → останній коміт
Ти перебуваєш на гілці, і нові коміти спокійно додаються до її історії.
Що відбувається в detached HEAD
Наприклад, ти виконав:
git checkout a1b2c3dТепер:
HEAD → коміт a1b2c3d
- HEAD більше не вказує на гілку
- Git попереджає, що ти в стані detached HEAD
Чому це небезпечно
У detached HEAD можна:
- читати код
- запускати проект
- тимчасово експериментувати
Але якщо ти зробиш коміт:
- він не належатиме жодній гілці
- при перемиканні на іншу гілку цей коміт може загубитися
Як правильно працювати в detached HEAD
Якщо ти зрозумів, що хочеш зберегти зміни:
git switch -c new-branchТак ти:
- створиш нову гілку
- «прикріпиш» коміти до історії
Коли detached HEAD - це нормально
Це нормальний стан, якщо ти:
- дивишся стару версію проекту
- перевіряєш баг у минулому
- запускаєш тести на конкретному коміті
- вивчаєш історію
Як вийти з detached HEAD
Просто повернутися на гілку:
git switch mainабо
git checkout mainЧаста помилка на співбесіді
«Detached HEAD - це помилка» - неправильно. Це режим, а не помилка. Помилка - робити коміти і не зберегти їх.
Коротка відповідь для співбесіди
Detached HEAD - це стан, коли HEAD вказує напряму на коміт, а не на гілку, тому нові коміти не зберігаються в історії гілок, якщо не створити нову гілку.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.