gitでpushしちゃったcommitを取り消す方法

調べると色々書いてあるが, 下記のサイトがよくまとまっている.

http://d.hatena.ne.jp/keisukefukuda/20111105/p1

色々考えたがpushしちゃった場合はどんな場合でも"恥を忍んで直す派"であるのが良いような気がする. サイトには"git revert HEAD^"と書いてあったが, "git revert HEAD"して"git push"じゃないのかな.

mergeをrevertする場合はどっちのbranchにするのかみたいな問題が発生するようで, 以下のようなエラーが出る.

fatal: Commit is a merge but no -m option was given.

これについては下記のサイトが参考になる. エラーメッセージにあるように-mオプションでブランチを指定すれば良い.

http://stackoverflow.com/questions/5970889/why-does-git-revert-complain-about-a-missing-m-option