Команди Git

git revert

git revert: скасувати правки конкретного коміту.

git revert створює новий коміт, який містить зворотні правки до змін указаного коміту, фактично нейтралізуючи його ефект без переписування історії комітів.

Сенс git revert — дати безпечний і чистий спосіб скасувати зміни в репозиторії, не переписуючи його історію. Це особливо важливо в командній роботі: переписування історії (наприклад, через git reset) може заплутати інших розробників, які працюють над тим самим проєктом, і призвести до конфліктів.

Коли ти запускаєш git revert, Git створює новий коміт зі змінами, зворотними до змін оригінального коміту. Цей новий коміт додається до історії репозиторію, тож у ній залишається чіткий слід і від початкових змін, і від їхнього скасування.

git revert особливо виручає, коли треба скасувати конкретну зміну з попереднього коміту, не зачіпаючи коміти, які з'явилися після нього. Так можна хірургічно точно прибрати проблемну зміну, зберігши цілісність історії комітів.

Приклади

Припустимо, історія комітів має такий вигляд:

Результат:
a1b2c3d (HEAD -> main) Update README
b2c3d4e Fix typo in main code
c3d4e5f Add new feature
2a291cc Initial commit

Щоб скасувати правки коміту Fix typo in main code (b2c3d4e), використовуй git revert:

Виконай у терміналі:
git revert b2c3d4e

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

Результат:
f4b5a62 (HEAD -> main) Revert "Fix typo in main code"
a1b2c3d Update README
b2c3d4e Fix typo in main code
c3d4e5f Add new feature
2a291cc Initial commit

Тепер ефект коміту Fix typo in main code скасовано, але сам коміт нікуди не зник з історії, а на додачу з'явився новий коміт, який записує скасування його змін.