Отменить последний коммит

Три разных «отменить»: сохранить правки в индексе, вернуть в рабочий каталог или стереть совсем

git reset --soft HEAD~1
git reset HEAD~1
git reset --hard HEAD~1
git revert HEAD

--soft нужен чаще всего: «закоммитил не то сообщение» или «забыл файл» — снимаете коммит, правки остаются подготовленными, коммитите заново.

--hard невосстановим обычными средствами — точнее, коммит ещё около 30 дней виден в git reflog, но файлы, которые не были закоммичены, пропадут насовсем.

Если коммит уже ушёл в общую ветку, reset не подходит: он переписывает историю, и у всех остальных ветка разъедется. Тогда revert — он создаёт новый коммит, отменяющий изменения, и история остаётся линейной.