Бывает, что делаешь коммит — а потом понимаешь: накосячил или просто надо по-другому. В Git откатить лишнее — минутное дело. Главное — знать разницу между «откатить коммит, но оставить файлы» и «снести всё напрочь».
Держи минимальный разбор для реальных задач.

🔨 Откатить коммит, но сохранить изменения в файлах

Если коммит не нужен, а файлы пригодятся:

git reset HEAD~1

После этого изменения останутся в рабочей директории. Можно поправить — и закоммитить снова.

🧹 Полный откат — и коммита, и правок

Если накосячил так, что всё лишнее:

git reset --hard HEAD~1

Git просто выкинет коммит вместе со всеми файлами внутри него. Осторожно — откат безвозвратный.

🎯 Откат к конкретному коммиту

Можно прыгнуть на любой старый коммит по его хэшу:

git reset --hard 531ce399ac9a6bbd58f5f60b1dabdaf6747a321e

Всё после этого коммита исчезнет.

🔄 Отменить коммит без изменения истории

Если нужно отменить изменения, но оставить историю:

git revert <hash>

Git создаст новый коммит, который откатит старый. Без переписывания истории — удобно, если работаешь в команде.

⚠️ Будь осторожен

reset --hard убивает историю навсегда. Если работаешь не один — предупреждай команду и пушь с умом. Лучше сначала отрепетировать в отдельной ветке.