マージコミットを revert する
$ git log -n 1 --oneline 45dfc9c (HEAD -> master) Merge branch 'hoge'
マージコミットを revert したい。
$ git revert 45dfc9c error: commit 45dfc9cee233c97679df476d06e41216d87bafbe is a merge but no -m option was given. fatal: revert failed
-m
オプションを渡す必要があるらしい。
$ git revert -m 45dfc9c error: option `mainline' expects a number greater than zero
0より大きい数字を渡す必要があるらしい。
$ git revert -m 1 45dfc9c Removing hoge.txt [master 3e3afb1] Revert "Merge branch 'hoge'" 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 hoge.txt
できた。
ちなみに help を見てみる。
$ git revert -h usage: git revert [<options>] <commit-ish>... or: git revert <subcommand> ... -m, --mainline <parent-number> select mainline parent
わからん。
Usually you cannot revert a merge because you do not know which side of the merge should be considered the mainline. This option specifies the parent number (starting from 1) of the mainline and allows revert to reverse the change relative to the specified parent.
1から始まるメインラインの親番号を指定すれば revert できるらしい。
とりあえず、git revert -m 1 <commit-hash>
を覚えておこう。