Skip to main content

Git: remove, reset and rollback commits

·235 words·2 mins· ·
Git Revert Reset Rollback
Ariejan de Vroom
Author
Ariejan de Vroom
Jack of all Trades, Professional Software Craftsman

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.

Related

Git Log: What did I do yesterday, exactly?
·307 words·2 mins
Git
Git: Squash your latests commits into one
·299 words·2 mins
Git Rebase Squash
Git: What files were changed since the last release?
·120 words·1 min
Git Log History