Skip to main content

Як перейти на конкретний коміт?

Перейти на конкретний коміт у Git можна декількома способами, але суть одна: ти кажеш Git, який коміт зробити поточним станом проєкту.

Розберемо найважливіші варіанти - саме ті, які чекають на співбесіді.


1. Перехід за hash коміту (класика)

Найпряміший спосіб - вказати hash коміту:

bash
git checkout a1b2c3d

або (сучасний варіант):

bash
git switch --detach a1b2c3d

Що станеться:

  • Git завантажить стан проєкту з цього коміту
  • ти опинишся в стані detached HEAD

Важливо сказати на співбесіді:

При такому переході ми не на гілці, а просто дивимось стару версію.


2. Перехід відносно HEAD

Можна переходити відносно поточного коміту:

bash
git checkout HEAD~1

Це означає:

  • HEAD~1 - один коміт назад
  • HEAD~2 - два коміти назад

Також є:

bash
git checkout HEAD^

^ - перший батько коміту (актуально для merge).


3. Перехід зі створенням гілки (безпечний варіант)

Якщо ти хочеш не просто подивитися, а продовжити роботу:

bash
git switch -c fix-bug a1b2c3d

Так ти:

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

4. Через гілку або тег

Якщо коміт позначений:

bash
git checkout v1.2.0

Це часто використовують:

  • для релізів
  • для стабільних версій

Важливий момент для співбесіди

git checkout і git switch не змінюють історію - вони просто переміщують HEAD.

Якщо потрібно відкотити історію, це вже:

  • git reset
  • git revert

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

На конкретний коміт можна перейти за допомогою git checkout <hash> або git switch --detach <hash>. При цьому HEAD вказує напряму на коміт і виникає стан detached HEAD. Щоб продовжити роботу, краще створити нову гілку.


Типова помилка

«Щоб повернутися до коміту, потрібен reset» Подивитися - checkout / switch, змінити історію - reset або revert.

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

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

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