git union merge で不可解な動作を理解しようとしています。再現するには、次の内容を持つ hello.txt から始めます。
1
2
3
別のコミットで、次の行を追加します。
1
2
new
3
元のコミットの別のfoo
ブランチで、中央の行を削除します。
1
3
ここでは、ユニオンマージを使用している場合でも、マージに削除された行が含まれていないと予想されます。git merge foo
それでも、(マスターで実行した後)含まれていることがわかります。
1
2
new
3
だから、私の行の削除を無視しています。ユニオンマージの仕組みを誤解しているだけですか? サンプル リポジトリはこちら: https://github.com/davidebbo/MergeTest
もう 1 つ注意: 行 2 を削除する代わりに行 1 を削除すると、マージは期待どおりに行われ、次のようになります。
2
new
3
そのため、奇妙なことは、標準の (非ユニオン) マージで競合が発生するシナリオでのみ発生するようです。