タイトルの通りです。これをグーグルで調べてみましたが、説明が見つからなかったので、洞察を提供するkdiff3のドキュメントを調べました。私が遭遇している状況は、あるブランチから別のブランチへのマージを行い、多数の競合を取得し、git mergetool を使用してそれらを 1 つずつ解決することです。何が起こるかというと、kdiff3 の起動時に一部のファイルで、自動解決された競合が x 個あり、競合が残っていないというダイアログが表示されるので、ファイルを保存して続行します。
kdiff3 のドキュメントによると、ファイルの 1 つのバージョンのみで行が変更された場合、競合は自動的に解決されます。すなわち。ベースはローカルまたはリモート ファイルと同じですが、両方ではありません。
私の質問は、私のマージツールがこれを自動解決できる場合 (私はいくつか試してみましたが、それらはすべていくつかの競合を自動解決します)、実際にそれが何をするかは論理的に思えますが、なぜ git から競合が発生するのでしょうか?
フォローアップの質問は次のとおりです。マージツールを開く前に、これらの競合をgitに自動解決させるにはどうすればよいですか?
例は次のとおりです。
base:
line 1
line 2
line 3
local:
line 1
line 2
line 3
remote:
line 1
line abc
line 3
上記の競合は Git では発生すると思いますが、kdiff3 では自動解決されます。別のケースかもしれませんが、以前に自動解決されたマージを行ったことがありますが、自動解決されてから正確なシナリオを思い出せません。