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