【git】git revert -m 1 マージコミットを元に戻す

gitのコミットを記録を残す形で元に戻したい場合、単純に以下のコマンドで対応できるが、

git revert {コミットID}

それがマージコミットだった場合は、取り込んだ側(1)のマージ前の状態に戻すのか、取り込んだ先(2)のマージ前の状態に戻すのかを「-m {数字}」で指定してあげる必要がある。

まずは「git log」コマンドで対象のマージコミットの内容を見てみよう。

f:id:daylambsbecomelions:20210823233057p:plain

マージコミットの履歴を見てみると、普通のコミットとは違い「Merge」という項目があり、省略化されたコミットIDが記載されている。最初にある赤枠の部分が「1」となり取り込んだ側、2番目の緑枠の部分が「2」で取り込んだ先のコミットIDとなる。マージコミットの場合はこれらのうちどちら側に合わせて元に戻すかを「-m {数字}」引数で指定する。大体は「2」の取り込み先の内容を削除して、「1」の取り込む側のマージ前の状態に戻すケースが多いかと思われるが、その場合は以下のようなコマンドになる。

git revert -m 1 cd1ef4cddbafe053e32d321f56bf0a55f7cec3aa

これでこの時マージしたブランチの内容が削除され、マージ前の状態に戻る形となる。

こちらわかりやすい記事があったので紹介↓↓↓
qiita.com