Три режима reset в Git
reset сдвигает указатель ветки
на более ранний коммит.
От выбранного флага зависит,
что случится с индексом
и файлами в рабочей копии.
--soft убирает последний
коммит, но оставляет индекс
и файлы как после commit:
git reset --soft HEAD~1
Без флага Git использует mixed:
коммит исчезает, индекс сбрасывается,
сами файлы на диске остаются:
git reset HEAD~1
--hard откатывает и коммит,
и индекс, и содержимое файлов
под выбранный снимок:
git reset --hard HEAD~1