我正在尝试在Windows 8.1系统上使用KDiff3作为Git Bash中的difftool,我承认我对Git很陌生。当我尝试将暂存文件与提交的文件进行比较时,我无法打开 KDiff3,并且我对如何处理它感到困惑。我在网上找到了将 KDiff3 设置为合并工具的说明,我猜我需要做类似的事情来将其设置为差异工具(我无法为新手找到足够明确的指导设置差异工具,这就是我在这里的原因(。这是我在下载并安装 KDiff3 后所做的:
git config --global diff.tool kdiff3
git config --global difftool.kdiff3.cmd '"C:\Program Files\KDiff3\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'
Git 没有向我喷出任何错误,所以也许这是正确的?我完全承认我不明白这里的语法!无论如何,当我尝试这个时:
git diff HEAD
我明白这个:
error: cannot spawn kdiff3: No such file or directory
external diff died, stopping at MyFile.R
我环顾四周,我看到一些关于人们在$PATH设置不正确时遇到类似问题的参考资料。我真的不知道$PATH是什么(如果有人能启发我,我会非常有义务(,但我为 KDiff3 (C:\Program Files\KDiff3\kidff3( 准备的路径绝对是 kdiff3.exe 在我的机器上的位置。有什么建议吗?
提前感谢,正如我所说,我是 Git 的新手,所以如果我没有提供一些关键信息,请告诉我。
我建议你放弃第二行配置,因为 Git bash 已经定义了如何使用 kdiff3。 (你可以看看你的 Git Bash 安装。 例如,在我的路径中,我可以找到 C:\Program Files (x86(\Git\libexec\git-core\mergetools\kdiff3,这是 kdiff3 的配置文件(。 您唯一需要做的就是将 kdiff3 放入 PATH 变量中。
仅使用第一行:
git config --global diff.tool kdiff3
但不是你的第二行:
#### comment out this line:
# git config --global difftool.kdiff3.cmd '"C:\Program Files\KDiff3\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'
要修复已添加的配置,请尝试在 GIT BASH 下编辑您的 .gitconfig
vim ~/.gitconfig
找到[difftool "kdiff3"]
部分,并删除该部分下带有cmd=
的行。您也可以删除整个部分(即也删除包含[difftool "kdiff3"]
的行
然后将您的路径添加到 kdiff3:
PATH=$PATH:"/c/Program Files/KDiff3"
由于"程序"和"文件"之间的空格,因此需要双引号。
此 PATH 行可以添加到您的 .bashrc 或 .bash_profile 中,具体取决于您如何开始您的 bash...
---更新---
校正:由于 Git Bash 使用 Windows 系统定义的环境变量 'PATH' + Windows 用户定义的环境变量 'PATH'。上面的 PATH 更改更难(使用 .bashrc 等(。 只需更改 Windows 环境变量,如此链接和/或此链接
在 GitBash 中更改第二行:
git config --global diff.tool kdiff3
git config --global difftool.kdiff3.path 'c:Program FilesKDiff3kdiff3.exe'
全局.gitconfig
中的相关部分如下所示:
[diff]
tool = kdiff3
[difftool "kdiff3"]
path = c:\Program Files\KDiff3\kdiff3.exe
只是为了避免混淆:
现在git difftool HEAD
推出kdiff3
.
但git diff HEAD
仍然显示了 GitBash 的变化。