Git: remove, reset and rollback commits
8 Sep, 2011
2 minute read

We’ve all been there, you committed changes you now regret. If you didn’t share those commits with anyone yet, you’re safe. Let me show you how to remove commits from your local repository. I’ll also include an example how to roll back commits you already did share with others. ~ Use git log to see your most recent commits. Let’s say you want to revert the last three commits, you can run the following command:

git reset --hard HEAD~3

If you only want the last commit to be removed:

git reset --hard HEAD~1

HEAD~1 is a shorthand for the commit before head. But, it’s also possible to roll back to a specific commit using the SHA hash.

git reset --hard d3f1a8

Please note that all your uncommitted changes will be lost when you perform git reset --hard. You might want to use git stash to save your uncommitted changes.

In case you already pushed your changes to a remote repository, you can’t use git reset, because it will wreak havoc with other people’s repositories later. Instead, you could revert your commit (e.g. create a new commit, undoing a previous one).

Note that git revert does not walk back into history, but only works on a specific commit or range of commits. To use my previous examples:

git revert HEAD~3..HEAD
git revert HEAD~1..HEAD
git revert d3f1a8..master

Optionally specify the --no-commit option to see what’s being reverted.

Learn more about git!

If you're seeing this message you've probably enabled some form of adblocker. I respect that.

I use this space to show recommended books on Amazon.com in relation to the post you just read. This generates a small income that allows me to buy a book every now and then.