为了与互联网上发布的一些解决方案保持一致,我安装了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发布于 2013-02-27 04:15:25
使用git difftool而不是git diff来调用已配置的diff工具。
由于您似乎使用的是cygwin git,但却是一个本机kdiff3,因此您可能还需要调用一个包装器脚本,而不是直接调用kdiff3,以使用cygpath将路径从cygwin格式转换为本机格式。
发布于 2014-11-14 10:05:06
实际上,不需要包装器脚本。如果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发布于 2015-10-06 14:46:18
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位上运行良好。
https://stackoverflow.com/questions/15097053
复制相似问题