はじめに
マージコミットをリバートするケースがあったので、その時の操作を備忘録として残したいと思います。
通常のリバート
通常のリバートの場合は、
git revert 取り消したいコミットID
このようにコマンドを実行するかと思われます。
他にも様々なオプションなどがありますので、詳しくはこちらの記事がとてもわかりやすいので、ご参照されてください。
マージコミットのリバート
本題のマージコミットのリバートだと、
git revert 取り消したいマージコミットのコミットID
このようにしても失敗してしまいます。
マージコミットの場合は、
自分のfeatureブランチの変更を保持し、mainからの変更を取り消したい場合
git revert -m 1 取り消したいマージコミットのコミットID
featureブランチの変更を取り消し、mainの状態に戻したい場合
git revert -m 2 取り消したいマージコミットのコミットID
このようなリバートを行います。
通常は「自分のfeatureブランチの変更を保持し、mainからの変更を取り消したい場合」といったユースケースがほとんどかと思いますので、
マージコミットのリバートが必要になった際は上記コマンドによる取り消しが有効かと思われます。
参考