n1ro°
RU

Компьютеры · Инструкция

Как отменить последний коммит Git и сохранить изменения

Нужно сдвинуть `HEAD` на один коммит назад, не удаляя сделанную работу.

Редакция N1RO · Проверено

Короткий ответ

Если последний коммит ещё не опубликован, выполните `git reset --soft HEAD~1`: коммит исчезнет из истории ветки, а изменения останутся staged. Для unstaged-изменений используйте `git reset --mixed HEAD~1`.

Порядок действий

  1. Проверьте `git status` и `git log -1 --oneline`, чтобы убедиться, что отменяете нужный локальный коммит.
  2. Чтобы сохранить изменения staged, выполните `git reset --soft HEAD~1`.
  3. Чтобы оставить изменения только в рабочем дереве, выполните `git reset --mixed HEAD~1`.
  4. Снова выполните `git status`, исправьте файлы при необходимости и создайте новый коммит.

Перед завершением проверьте

  • Коммит ещё не опубликован либо последствия переписывания истории понятны.
  • Перед любым `--hard` сохранены нужные локальные данные.

Важно

Не используйте `git reset --hard`, если нужно сохранить изменения: он меняет рабочее дерево.

Что учитывать

Не используйте `git reset --hard`, если нужно сохранить изменения: он меняет рабочее дерево.

Источники и проверка

Фактическая часть сверена по первичным источникам (в т.ч. git-reset Documentation). Пример и формулировки — редакция N1RO на 2026-09-20.