Компьютеры · Инструкция
Как отменить последний коммит Git и сохранить изменения
Нужно сдвинуть `HEAD` на один коммит назад, не удаляя сделанную работу.
Короткий ответ
Если последний коммит ещё не опубликован, выполните `git reset --soft HEAD~1`: коммит исчезнет из истории ветки, а изменения останутся staged. Для unstaged-изменений используйте `git reset --mixed HEAD~1`.
Порядок действий
- Проверьте `git status` и `git log -1 --oneline`, чтобы убедиться, что отменяете нужный локальный коммит.
- Чтобы сохранить изменения staged, выполните `git reset --soft HEAD~1`.
- Чтобы оставить изменения только в рабочем дереве, выполните `git reset --mixed HEAD~1`.
- Снова выполните `git status`, исправьте файлы при необходимости и создайте новый коммит.
Перед завершением проверьте
- Коммит ещё не опубликован либо последствия переписывания истории понятны.
- Перед любым `--hard` сохранены нужные локальные данные.
Важно
Не используйте `git reset --hard`, если нужно сохранить изменения: он меняет рабочее дерево.
Что учитывать
Не используйте `git reset --hard`, если нужно сохранить изменения: он меняет рабочее дерево.
Источники и проверка
Фактическая часть сверена по первичным источникам (в т.ч. git-reset Documentation). Пример и формулировки — редакция N1RO на 2026-09-20.