git bash:不能将 kdiff3 生成为 difftool



我正在尝试在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 的变化。

相关内容

  • 没有找到相关文章

最新更新