Як перейти на конкретний коміт?
Перейти на конкретний коміт у Git можна декількома способами, але суть одна: ти кажеш Git, який коміт зробити поточним станом проєкту.
Розберемо найважливіші варіанти - саме ті, які чекають на співбесіді.
1. Перехід за hash коміту (класика)
Найпряміший спосіб - вказати hash коміту:
git checkout a1b2c3dабо (сучасний варіант):
git switch --detach a1b2c3dЩо станеться:
- Git завантажить стан проєкту з цього коміту
- ти опинишся в стані detached HEAD
Важливо сказати на співбесіді:
При такому переході ми не на гілці, а просто дивимось стару версію.
2. Перехід відносно HEAD
Можна переходити відносно поточного коміту:
git checkout HEAD~1Це означає:
HEAD~1- один коміт назадHEAD~2- два коміти назад
Також є:
git checkout HEAD^^ - перший батько коміту (актуально для merge).
3. Перехід зі створенням гілки (безпечний варіант)
Якщо ти хочеш не просто подивитися, а продовжити роботу:
git switch -c fix-bug a1b2c3dТак ти:
- перейдеш на потрібний коміт
- створиш нову гілку
- уникнеш проблем з detached HEAD
4. Через гілку або тег
Якщо коміт позначений:
git checkout v1.2.0Це часто використовують:
- для релізів
- для стабільних версій
Важливий момент для співбесіди
git checkout і git switch не змінюють історію - вони просто переміщують HEAD.
Якщо потрібно відкотити історію, це вже:
git resetgit revert
Коротка відповідь для співбесіди
На конкретний коміт можна перейти за допомогою
git checkout <hash>абоgit switch --detach <hash>. При цьому HEAD вказує напряму на коміт і виникає стан detached HEAD. Щоб продовжити роботу, краще створити нову гілку.
Типова помилка
«Щоб повернутися до коміту, потрібен reset»
Подивитися - checkout / switch,
змінити історію - reset або revert.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.