Не часто, но бывает необходимо отменить последний выполненный коммит. В зависимости от того, насколько все плохо можно действовать по-разному.
Ситуация 1: Коммит плох, но не безнадежен
Ваши изменения еще не отправлены на сервер, но локально вы уже выполнили команду commit. Нужно как то отменить операцию и продолжить редактирование, чтобы потом все таки закоммитить.
1 |
git reset --soft HEAD^ |
Коммит будет отменен в локальной ветке, а файлы данного коммита окажутся в статусе «ожидают коммита» (to be commited).
Можете вносить правки.
Ситуация 2: Коммит безнадежен
Рассмотрим следующую ситуацию, когда последний коммит совсем никуда не годится, и лучше бы его вообще не было. Изменения были выполнены локально.
Следующая команда отменит операцию commit, а файлы вернет в состояние к моменту до того как файлы были изменены.
1 |
git reset --hard HEAD^ |