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