Оригінальна публікація: Git Revert Commit – How to Undo the Last Commit
Скажімо, ви працюєте над своїм кодом у Git і щось пішло не за планом. Тож тепер вам потрібно скасувати свій останній коміт. Але як це зробити? Давайте дізнаємось!
Існує два можливі способи скасувати ваш останній коміт. У цій статті ми розглянемо їх обидва.
Команда revert
Команда revert
створить коміт, який скасовує зміни цільового коміту. Ви можете використовувати її для скасування останнього коміту таким чином:
git revert <commit to revert>
Ви можете знайти назву коміту, який потрібно скасувати, за допомогою git log
. Перший виведений комміт і є останнім створеним комітом. Тоді ви можете скопіювати звідти буквено-цифрове ім’я та використати його в команді revert
.
Команда reset
Ви також можете скористатися командою reset
, щоб скасувати останній коміт. Але будьте обережні: це змінить історію комітів, тому вам варто використовувати її уважно. Вона перемістить HEAD, робочу гілку, до вказаного коміту та відкине все після:
git reset --soft HEAD~1
Параметр --soft
означає, що ви не втратите незафіксовані зміни, які можете мати.
Якщо ви бажаєте відмінити останній комміт, а також видалити всі незафіксовані зміни, ви можете скористатися параметром --hard
:
git reset --hard HEAD~1
Це скасує останній коміт, а також будь-які незафіксовані зміни.
Що і коли краще використовувати: reset
чи revert
?
Вам варто використовувати команду reset
тільки у випадку, якщо коміт, який ви збираєтеся відмінити, існує лише локально. Ця команда змінює історію комітів і може перезаписати історію, від якої залежать віддалені учасники команди.
Команда revert
натомість створює новий коміт, який скасовує зміни, тому якщо коміт, який потрібно відмінити, вже був відправлений в спільний репозиторій, краще використовувати revert
, оскільки дана команда не перезаписує історію комітів.
Підсумки
Ви дізналися про два способи скасування останнього коміту, а також про те, який спосіб краще використовувати у відповідних ситуаціях.
Тепер, якщо ви помітите, що останній коміт містить помилку або не повинен був бути зроблений, ви знаєте, як виправити це!