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 скасовано, але сам коміт нікуди не зник з історії, а на додачу з'явився новий коміт, який записує скасування його змін.
.gitignoregit checkoutgit configgit taggit worktree