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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Июль 26, 2017 г.

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

Читать

Git pull с передачей логина и пароля

Декабрь 11, 2021 г.

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

Читать

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

Август 23, 2018 г.

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

Читать

GIT может хранить пароли

Сентябрь 30, 2017 г.

Операции с удаленным частным репозиторием требуют ввода пароля. Git может сохранять введенные пароли, чтобы не вводить их при каждой операции. Как это сделать? Во-первых, git может запомнить введенный пароль временно. Это позволит выполнить ряд ...

Читать
 

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

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



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