質問
kdiff3で3方向の比較を使用できるようにGitを設定することは可能ですか?
私はそれらを自動登録するにはあまりにも異なる2つのブランチを持っています、私は単に各マージポイントをチェックする必要があり、私は最善の方法は私が他のブランチから変更したいブランチをチェックして言うことだと思います
git difftool HEAD_OF_OTHER_BRANCH -- .
次に、kdiff3でマージファイルを選択します。私はただコミットしたファイルを通過した後です。
merge.conflictStyleとdiff.conflictStyleをdiff3に設定しましたが、kdiff3は双方向のdiffで始まります。これは可能ですか? Gitが共通の祖先のハッシュをパラメーターとして送信した場合、これは可能ですが、それは可能ですか?
がある 討論 SVNとBC3でこれを行う方法については、GitとKdiff3のものは何も見つかりませんでした。
解決
git diffは、マージ状態を除き、2ウェイDiff(パッチなどを生成するのが理にかなっている)のみを実行するように思われます。そのためにマージする必要があります。先日、私は同様の状況にあり、 ours
ストラテジー。それは機能しましたが、理想的ではありませんでした。たぶん、競合を解決しようとしない「非解決」マージ戦略が必要です。 .git/merge_*ファイルを微調整して、すべてのファイルを競合として設定することで、それをエミュレートできる場合があります。
それ以外の場合、明らかな解決策は3つの異なるディレクトリをチェックアウトしてKDIFF3を実行することですが、あなたはよりエレガントなソリューションを探していると思います
他のヒント
これをコマンドラインで実行します:
git config --global mergetool.kdiff3.path /path/for/your/kdiff3/binary
次に、競合を解決するとき、あなたはただしなければなりません:
git mergetool --tool=kdiff3