はじめに
以前、「m1でrevertしといて!」と言われて、「へ?」となったことがあったので、メモしておきます。
git revert
まず、revertのシンプルな使い方から。
$ git revert HEAD
でHEADのコミットを取り消すようなコミットを作成してくます。
コミットメッセージを変更する画面が出てくるので変更する場合は変更して、後は勝手にコミットまでやってくれます。
merge commitをrevertする
revertしようとしたコミットがmerge commitだった場合、エラーが出てしまいます。
$ git revert aaaaaa
error: Commit aaaaaa is a merge but no -m option was given.
こんなときにはm(mainlineオプション)を使います。
mオプションには1または2を基本的に使います。
1のときは「マージされた側のブランチ」、2のときは「マージする側のブランチ」になります。マージしたコミットそのものをrevertするときは1になります。なので、基本的に1を使うといいと思います。
$ git revert -m 1 aaaaaa
$ git revert -m 2 aaaaaa