With SVN it is easy to reverse-merge a commit, but how to do that with Git?
To create a new commit that 'undoes' the changes of a past commit, use:
$ git revert
It's also possible to actually remove a commit from an arbitrary point in the past by rebasing and then resetting, but you really don't want to do that if you have already pushed your commits to another repository (or someone else has pulled from you).