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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Создание ветки на основе существующей в GIT

Июль 30, 2018 г.

Создание новой ветки - это рутинная операция в GIT. Как указать на основе какой существующей ветки нужно создать новую? По умолчанию, за основу будет взята текущая ветка, в которой вы находитесь. Например: [crayon-6a09633b95b81425388730/] Сначала ...

Читать

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

Август 23, 2018 г.

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

Читать

Подключение к GitHub по SSH: пошаговая инструкция

Сентябрь 3, 2025 г.

Работа с репозиториями через SSH удобнее и безопаснее, чем по HTTPS — вам не нужно вводить пароль при каждом пуше, а авторизация выполняется с помощью криптографических ключей. Разберём процесс полностью: от создания ключа до проверки подключения. ...

Читать

Как отключить отслеживание прав доступа к файлам в git

Декабрь 4, 2018 г.

GIT по умолчанию  следит за правами на запуск файлов. Чаще всего, отслеживание прав не требуется, но файлы то и дело попадают в список измененных, и далее - в коммиты. Давайте посмотрим как игнорировать смену прав доступа у файлам. К счастью, отключить ...

Читать
 

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

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



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