Как откатить последний коммит
Инструкция для отката последнего коммита, в зависимости от ситуации.
1. Откат последнего коммита без публикации
Если коммит ещё не был отправлен в удалённый репозиторий:
-
Удалить коммит, сохранив изменения в индексе (стадии):
git reset --soft HEAD~1
-
Удалить коммит и убрать изменения из индекса, оставив их в рабочей папке:
git reset --mixed HEAD~1
-
Удалить коммит и изменения полностью (⚠️ безвозвратно):
git reset --hard HEAD~1
2. Откат опубликованного коммита (без изменения истории)
Если коммит уже отправлен в удалённый репозиторий:
- Создать новый коммит, который отменяет изменения предыдущего:
git revert HEAD
После этого отправить изменения в репозиторий:
git push
3. Жёсткий откат опубликованного коммита (с изменением истории)
Если нужно полностью удалить коммит (и изменения), и ты готов "переписать" историю репозитория:
-
Удалить последний коммит и изменения:
git reset --hard HEAD~1
-
Принудительно отправить изменения:
git push --force
⚠️ Предупреждение: Этот способ может привести к проблемам для других разработчиков, так как история репозитория будет изменена.
Вывод
Выбирай способ в зависимости от ситуации: для локальных коммитов подойдут reset
, для опубликованных — безопасный revert
или жёсткий reset --hard
. Если есть сомнения, уточни детали своей задачи!