Как отменить последний коммит в GIT

Не часто, но бывает необходимо отменить последний выполненный коммит. В зависимости от того, насколько все плохо можно действовать по-разному.

Ситуация 1: Коммит плох, но не безнадежен

Ваши изменения еще не отправлены на сервер, но локально вы уже выполнили команду commit. Нужно как то отменить операцию и продолжить редактирование, чтобы потом все таки закоммитить.

Коммит будет отменен в локальной ветке, а файлы данного коммита окажутся в статусе «ожидают коммита» (to be commited).

Можете вносить правки.

Ситуация 2: Коммит безнадежен

Рассмотрим следующую ситуацию, когда последний коммит совсем никуда не годится, и лучше бы его вообще не было. Изменения были выполнены локально.

Следующая команда отменит операцию commit, а файлы вернет в состояние к моменту до того как файлы были изменены.

Ситуация 3: Безнадежный коммит уже на сервере (в origin)

Если всё зашло совсем далеко, и коммит уже оказался на сервере, то при попытке откатится локально и выполнить команду push вы получите следующий ответ:

Смысл ответа в том, что локальная ветка старее, чем на сервере (вы ведь отменили коммит) и потому, наверное, вы делаете что то не так с точки зрения GIT.

Придется немного приложить силы (force), и заставить сервер принять ваши изменения:

Полностью алгоритм выглядит так (покажу на примере ветки develop):

Мало букафф? Читайте есчо !

Получить в git список измененных файлов

Июль 26, 2017 г.

Небольшая шпаргалка по git. Файлы измененные с момента последнего коммита, т.е. текущие изменения, можно вывести командой [crayon-6a53ff5e05f83359697621/] Вы увидите два списка изменений - файлы, которые добавлены в commit и список unstaged changes ...

Читать

Как обновить ветку в Git без переключения на неё

Май 1, 2026 г.

Предположим, вы работаете в ветке feature, а коллеги обновили master. Вам нужно подтянуть свежие изменения в локальный master, но не хочется терять контекст и переключаться туда-обратно. Стандартный git pull работает только с текущей веткой. Что делать? ...

Читать

Организуем автодеплой изменений из репозитория для проекта на Drupal

Август 23, 2018 г.

Когда над проектом работает несколько разработчиков, то возникают определенные структурные и организационные вопросы. Каждый программист обычно работает ...

Читать

Удалить новые (untracked) файлы в git

Июль 31, 2024 г.

Иногда нужно избавиться от новых (лишних) файлов, привожу примеры команд. Если это случается регулярно, в процессе компиляции, сборки, у вас создаются файлы, которые вы не будете включать в commit, то, наверное, стоит подумать и включить их в настройки ...

Читать
 

Комментарии к «Как отменить последний коммит в GIT»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: