How to Remove a Commit That Is Already Pushed to Github
I ran into a situation when I wrongly pushed some commits onto a repository.
Hence I need to remove those commits.
The exact situation is all because I didn’t fully understand Octopress.. I was using Octopress on GitHub Pages.
Usually, you will only be on
source branch. When you want to push to the
master branch, you use the
rake gen_deploy command, which will generate the static files to
_deploy directory, which will then automatically push
_deploy onto GitHub.
I have itchy hands..
And switched to the
And there I somehow made 2 commits, and pushed them.
After going back to
source branch, subsequent
rake gen_deploy will give this error:
failed to push some refs to '[email protected]:samwize/samwize.github.com'
I don’t really understand why.
But I knew I shouldn’t push the 2 commits in the first place.
Steps to remove the 2 commits
Firstly, find out the comit that you want to revert back to.
For example, commit 7f6d03 was before the 2 wrongful commits.
Force push that commit as the new master:
git push origin +7f6d03:master
+ is interpreted as forced push.
You can also use git reset to undo things. Then force push.
git reset 7f6d03 --hard git push origin -f