Git の merge は、「2つのブランチの共通の親を探し、そこから merge されるブランチのコミットを順に merge するブランチに適用」していくものだ。 では、次のようなときどうするか。 ケース 上の画像において、それぞれのコミットは以下の通りである。 S:分岐元のコミット M, G:マージコミット R:マージコミット(M)の revert コミット A, B, C, D:通常のコミット 上記グラフができるまでの流れは、 マージを行う(Mコミットが作られる) 先のマージはまだ早かったと気づき、 revert する(Rコミットが作られる) しばらく経ち、マージしても良くなったので再度マージを行う(Gコミットが作られる) という感じだ。 さて、このときGコミットには、A、B、C、Dの4つのコミットが適用されていて欲しい。 しかし実際には、CとDの2つだけしか適用されない。 なぜなら
![Git で merge commit を revert したあと、再度 merge したい | risou's Lithograph](https://cdn-ak-scissors.b.st-hatena.com/image/square/670e8fea0d1b040d9310b37ce8beb4a0396e1b6c/height=288;version=1;width=512/https%3A%2F%2Fblog.risouf.net%2Fstatic%2Fimg%2Fsunglass.jpeg)