Если вы хотите уничтожить все изменения после данного коммита, вы можете сбросить ветку, над которой вы работаете (например, master), в коммит. git reset <commit>
делает то, что он перемещает ваш HEAD
в данный коммит. Следующие коммиты отбрасываются.
A---B---C---D-master
тогда
git reset --hard <SHA1-of-B>
дает вам:
A---B-master
--hard
предназначен для отмены ваших последних изменений из индекса и ваших локальных файлов.
Если у вас несколько ветвей, это может быть немного сложнее, но вы поймете идею.
Обратите внимание, что отклоненные коммиты могут быть восстановлены с помощью git reflog
, но вы вряд ли увидите их, если не пытаетесь. В конце концов, отклоненные коммиты навсегда исчезнут, особенно если вы используете git gc
то и дело.