Gitの過去のマージを取り消す方法について。 Gitで、過去にブランチのマージを行ったあと、コミットを何回かしたとします。 このとき、その追加コミットは維持し、ブランチのマージのみを無かったことにする方法はありますか? git rebase -i しようと思ったのですが、マージのコミットがリストに出ませんでした。 具体的には、以下のような状況でした。 9f0db5d で間違えてmainでコミットしてdevにマージしたせいでグラフが変になったので、それを修正したいです。 ~~~~ devブランチにいる状態で、git log --oneline --graph --decorate --all の結果は以下のようになっていました。 * dd2b3ab (HEAD -> dev, origin/dev) devでコミット #12 * 0b55319 devでコミット #11 * 98b5776 devでコミット #10 * 5a062ee devでコミット #9 * b398382 devでコミット #8 * f0869a0 devでコミット #7 * 9f0db5d (origin/main) mainでコミット (間違えた) * 29f2fa7 (main) Merge branch 'dev' |\ | * 9e44795 devでコミット #6 | * 448f82e devでコミット #5 | * f3e054a devでコミット #4 | * 09ec23a devでコミット #3 * | a6f7e6e Merge branch 'dev' |\| | * 314d02a devでコミット #2 | * 358eaf0 devでコミット #1 git reflog の結果は次のようなものでした。 dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{0}: checkout: moving from dev to main dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{1}: reset: moving to HEAD@{3} dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{2}: reset: moving to HEAD dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{3}: reset: moving to HEAD dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{4}: reset: moving to HEAD@{3} dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{5}: checkout: moving from main to dev dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{6}: merge dev: Fast-forward 9f0db5d (origin/main) HEAD@{7}: checkout: moving from dev to main dd2b3ab (HEAD -> main, origin/dev, dev) HEAD@{8}: commit: devでコミット #12 0b55319 HEAD@{9}: commit: devでコミット #11 98b5776 HEAD@{10}: commit: devでコミット #10 5a062ee HEAD@{11}: commit: devでコミット #9 b398382 HEAD@{12}: commit: devでコミット #8 f0869a0 HEAD@{13}: commit: devでコミット #7 9f0db5d (origin/main) HEAD@{14}: merge main: Fast-forward 9e44795 HEAD@{15}: checkout: moving from main to dev 9f0db5d (origin/main) HEAD@{16}: commit: mainでコミット (間違えた) 29f2fa7 HEAD@{17}: merge dev: Merge made by the 'ort' strategy. a6f7e6e HEAD@{18}: checkout: moving from dev to main 9e44795 HEAD@{19}: commit: devでコミット #6
プログラミング