首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git :不能将kdiff3作为扩散工具

git :不能将kdiff3作为扩散工具
EN

Stack Overflow用户
提问于 2014-12-03 02:45:45
回答 2查看 4.5K关注 0票数 2

我试图在Windows8.1系统上使用KDiff3作为Git中的一个扩展工具,我承认我对Git非常陌生。当我尝试将分阶段的文件与提交的文件进行比较时,我无法让KDiff3打开,我对如何处理它感到困惑。我在网上找到了将KDiff3设置为合并工具的指导,并且我猜到我需要做一些类似的事情来将它设置为一个diff工具(我还没有找到足够明确的指南来帮助新手设置diff工具,这就是我来这里的原因)。在下载和安装KDiff3之后,我就是这样做的:

代码语言:javascript
复制
 git config --global diff.tool kdiff3
 git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'

吉特没有对我说任何错误,所以也许这是对的?我完全承认我不懂这里的语法!总之,当我尝试这个的时候:

代码语言:javascript
复制
 git diff HEAD

我明白了:

代码语言:javascript
复制
 error: cannot spawn kdiff3: No such file or directory
 external diff died, stopping at MyFile.R

我环顾四周,看到了一些关于当$PATH设置不正确时有类似问题的人的参考资料。我真的不知道$PATH是什么(如果有人能启发我,我会非常感激),但我为KDiff3 (C:\ProgramFilesKDiff3\kidff3 3)提供的路径肯定位于我的计算机上的kdiff3.exe。有什么建议吗?

提前谢谢,就像我说的,我是Git的新手,所以如果我没有提供一些关键的信息,请告诉我。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-03 04:07:13

我建议您放弃第二行信任,因为Git已经定义了如何使用kdiff3。(你可以看看你安装的Git Bash。例如,在我的路径中,我可以找到C:\Program (x86)\Git\libexec\git-core\mergetools\kdiff3 3,这是kdiff3的配置文件)。唯一需要做的就是将kdiff3放在PATH变量中。

只使用你的第一行:

代码语言:javascript
复制
git config --global diff.tool kdiff3

但不是你的第二句:

代码语言:javascript
复制
#### comment out this line:
# git config --global difftool.kdiff3.cmd '"C:\\Program Files\\KDiff3\\kdiff3" $BASE $LOCAL $REMOTE -o $MERGED'

若要修复已添加的配置,请尝试在GIT BASH下编辑.gitconfig。

代码语言:javascript
复制
vim ~/.gitconfig

找到[difftool "kdiff3"]部分,并删除该节下的cmd=行。您也可以删除整个部分(也可以删除包含[difftool "kdiff3"]的行)。

然后将您的路径添加到kdiff3:

代码语言:javascript
复制
PATH=$PATH:"/c/Program Files/KDiff3"

双引号是需要的,因为“程序”和“文件”之间的空间。

这条路径行可以添加到您的.bashrc或.bash_profile中,这取决于您如何启动bash.

-更新

更正:因为Git Bash使用Windows系统定义的环境变量'PATH‘+ Windows用户定义的环境变量'PATH’。上面的路径更改更难(使用.bashrc等)。只需更改Windows环境变量,如此链接和/或此链接

票数 3
EN

Stack Overflow用户

发布于 2017-02-06 09:44:05

更改GitBash中的第二行:

代码语言:javascript
复制
git config --global diff.tool kdiff3
git config --global difftool.kdiff3.path 'c:\Program Files\KDiff3\kdiff3.exe'

全球.gitconfig中的共振部分如下所示:

代码语言:javascript
复制
[diff]
    tool = kdiff3
[difftool "kdiff3"]
    path = c:\\Program Files\\KDiff3\\kdiff3.exe 

为了避免混乱:

现在,git difftool HEAD发布了kdiff3

但是git diff HEAD仍然显示了GitBash的变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27262781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档