@Nek, так просто HEAD сдвигается, но потерянные коммиты всё равно в базе болтаются, даже git gc их не трёт.
Можно зная хэш перейти git co <commit> или получить список с помощью git fsck --lost-found
В общем: если есть локальная репа, которую вы ещё не пушили никуда и вам хочется грохнуть несколько последних коммитов и вас посетила влажная фантазия по их полному уничтожению - нужно сделать reset HEAD, создать пустую репу и сделать туда pull или push. Clone не прокатывает - он все объекты вытащит (на локалке во всяком случае).