14

KDiff3 で 3 者間比較を使用できるように Git を設定することはできますか?

自動マージするにはあまりにも異なる 2 つのブランチがあります。各マージ ポイントを確認するだけです。最善の方法は、他のブランチからの変更が必要なブランチをチェックアウトして、次のように言うことです。

git difftool HEAD_OF_OTHER_BRANCH -- .

次に、[KDiff3 でファイルを結合] を選択します。ファイルを調べた後、コミットするだけです。

merge.conflictstyle と diff.conflictstyle を diff3 に設定しましたが、KDiff3 はまだ双方向の diff で始まります。これは可能ですか?Git が共通の祖先のハッシュもパラメーターとして送信する場合、これは可能だと思いますが、そうですか?

SVN と BC3 でこれを行う方法についての議論がありますが、Git と KDiff3 については何も見つかりませんでした。

4

2 に答える 2

9

コマンドラインでこれを実行します。

git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary  

次に、競合を解決するときは、次のことを行う必要があります。

git mergetool --tool=kdiff3
于 2012-03-05T18:20:40.193 に答える
3

git diff は、マージ状態を除いて、双方向の差分 (パッチなどを生成するのに意味があります) のみを行うようです。そのためにマージを行う必要があります。私も先日似たような状況にあり、ours戦略を使ってマージすることになりました。それは機能しましたが、理想的ではありませんでした。競合を解決しようとしない「非解決」のマージ戦略が必要なのかもしれません。.git/MERGE_* ファイルを微調整し、すべてのファイルを競合として設定することで、それをエミュレートできる場合があります。
それ以外の場合の明らかな解決策は、3 つの異なるディレクトリをチェックアウトして kdiff3 を実行することですが、より洗練された解決策を探していると思います。

于 2010-09-03T13:40:29.683 に答える