首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cygwin git下的KDiff3不会调用

cygwin git下的KDiff3不会调用
EN

Stack Overflow用户
提问于 2013-02-27 02:53:54
回答 3查看 2.4K关注 0票数 3

为了与互联网上发布的一些解决方案保持一致,我安装了KDiff3并修改了.gitconfig,如下所示。尽管如此,当我在存储库中运行git diff HEAD^ HEAD来测试它时,我得到了由默认工具执行的比较。我在Windows7-64上运行cygwin git。有人能解释一下为什么不调用KDiff3吗?

代码语言:javascript
复制
[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
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-02-27 04:15:25

使用git difftool而不是git diff来调用已配置的diff工具。

由于您似乎使用的是cygwin git,但却是一个本机kdiff3,因此您可能还需要调用一个包装器脚本,而不是直接调用kdiff3,以使用cygpath将路径从cygwin格式转换为本机格式。

票数 2
EN

Stack Overflow用户

发布于 2014-11-14 10:05:06

实际上,不需要包装器脚本。如果kdiff3.exe不在您的路径中,则需要在cmd中将完整路径指定为cmd = /cygdrive/c/apps/KDiff3/kdiff3 ...

我的.gitconfit

代码语言:javascript
复制
[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
票数 3
EN

Stack Overflow用户

发布于 2015-10-06 14:46:18

代码语言:javascript
复制
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位上运行良好。

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

https://stackoverflow.com/questions/15097053

复制
相关文章

相似问题

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