git checkout master
git reset --hard 94b90dc1121ce477131fa60ffdc234591554b6c8
git push -f origin master
Here's an explanation of the commmands...
First, let's make sure you are on the master branch, so use the checkout
command so your HEAD points to master.
What is HEAD
?
It's basically the pointer that Git maintains to point to where you currently are in the Git tree.
In fact, most of these concepts like HEAD, and branches, are just pointers to different points in the tree.
Do a gitk
from the command line to see the tree in a nice graphical format.
Next, let's reset
your HEAD pointer to that exact commit that you had in your original question. This will basically make the files on your file-system match that commit.
Be careful will reset --hard
though...if you have outstanding work, or commit's that are not-yet pushed to the server this may make them "unreachable" (think about that tree again)...if you "lose" commits from this command you can usually get them back by using the reflog
though.
Finally, push the local state of your master branch to GitHub's master branch. The -f is there because you are re-writing the history of the branch, so you need to tell Git to "force" it.