3

インターネットに投稿された多くのソリューションに合わせて、KDiff3 をインストールし.gitconfig、それを利用するために以下のように変更しました。git diff HEAD^ HEADそれにもかかわらず、リポジトリ内で実行してテストすると、デフォルトのツールによって差分が実行されます。Windows7-64でcygwin gitを実行しています。KDiff3 が呼び出されない理由を説明できる人はいますか?

[diff]
    tool = kdiff3
[merge]
    tool = kdiff3

[difftool "kdiff3"]
    path = \"D:/Program Files (x86)/KDiff3/kdiff3.exe\"
    keepBackup = false
    trustExitCode = false

[mergetool "kdiff3"]
    path = \"D:/Program Files (x86)/KDiff3/kdiff3.exe\"
    keepBackup = false
    trustExitCode = false
4

3 に答える 3

3

実際には、ラッパー スクリプトは必要ありません。kdiff3.exe がパスにない場合は、cmd で次のようにフル パスを指定する必要があります。cmd = /cygdrive/c/apps/KDiff3/kdiff3 ...

私の .gitconfit

[diff]
    tool = kdiff3
[merge]
    tool = kdiff3
[difftool "kdiff3"]
    cmd = kdiff3 \"$(cygpath -wla $LOCAL)\" \"$(cygpath -wla $REMOTE)\"
    trustExitCode = false
[mergetool "kdiff3"]
    cmd = kdiff3 \"$(cygpath -wla $BASE)\" \"$(cygpath -wla $LOCAL)\" \"$(cygpath -wla $REMOTE)\" -o \"$(cygpath -wla $MERGED)\"
    keepBackup = false
    trustExitCode = false
[mergetool]
    prompt = false
[difftool]
    prompt = false
于 2014-11-14T02:05:05.590 に答える
2

git difftoolではなく、構成された差分ツールを呼び出すために使用しますgit diff

cygpathcygwin git を使用しているようですが、ネイティブの kdiff3 であるため、cygwin 形式からネイティブ形式への変換パスを使用するには、kdiff3 を直接ではなく、ラッパー スクリプトを呼び出す必要があるでしょう。

于 2013-02-26T20:15:24.847 に答える
1
git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global mergetool.kdiff3.keepbackup=false
git config --global mergetool.kdiff3.trustexitcode=false

設定を確認してください:git config --global -l

これは cywin 64 ビットで正常に動作します

于 2015-10-06T06:46:18.003 に答える