I do not claim to be a wiz at git, and I do not ensure what I am writing about, but it seemed to work for me, and I appreciate any comments.
My goal was to temporarily revert one or many commits that I had pushed to the remote server.
http://cheat.errtheblog.com/s/git — specifically the “Fix mistakes / Undo” section was helpful.
What I found:
git revert -n <sha>
#run this for each commit you would like to “undo”
(the -n makes it so that you are not actually creating a commit, but staging the reverse of the changes made by your <sha> commit in your index. git status will show you this)
git ci -a # apply your revision git push #origin to master (these steps effectively created one commit that was the product of reversing all the commits you picked in the git revert -n step)
now your index looks like:
now, lets say, the time has come to reapply your commits. Because you didn’t just do
git reset --hard <commit3>
or something like that, all you have to do is git reset –hard <sha1> which will “undo your undo”
git push #origin master
again and you are back to where you were.