#this will preserve changes done to your files
git reset --soft HEAD~1
#this will get rid of the commit and the changes done to the files
$ git reset --hard HEAD~1
#this will preserve changes done to your files
git reset --soft HEAD~1
#this will get rid of the commit and the changes done to the files
$ git reset --hard HEAD~1
# Undo last commit.
# --soft flag makes sure that the changes in undone revisions are preserved.
# You'll find the changes as uncommitted local modifications in your working copy.
git reset --soft HEAD~1
# If you don't want to keep these changes, simply use the --hard flag.
# This will completely remove the changes.
git reset --hard HEAD~1
---- [Temporarily switch to a different commit] ----
# If you want to temporarily go back to a particular commit, fool around,
# then come back to where you are
> git checkout 0d1d7fc32
# Or if you want to make commits while you're there,
# go ahead and make a new branch while you're at it:
> git checkout -b old-state 0d1d7fc32
---- [Hard delete unpublished commits] ----
# If, on the other hand, you want to really get rid of everything you've done
# since then, there are two possibilities.
# One, if you haven't published any of these commits, simply reset:
# This will destroy any local modifications.
# Don't do it if you have uncommitted work you want to keep.
> git reset --hard 0d1d7fc32
# Alternatively, if there's work to keep:
> git stash
> git reset --hard 0d1d7fc32
> git stash pop
# This saves the modifications, then reapplies that patch after resetting.
# You could get merge conflicts, if you've modified things which were
# changed since the commit you reset to.