首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git -将KDiff3设置为默认合并工具

git -将KDiff3设置为默认合并工具
EN

Stack Overflow用户
提问于 2017-03-05 17:43:34
回答 2查看 12.9K关注 0票数 4

在安装KDiff3以管理git中的冲突之后,默认的冲突仍然是为我打开的:

下面是这个回答中提到的配置

代码语言:javascript
复制
git config --global --add merge.tool kdiff3
git config --global --add mergetool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add mergetool.kdiff3.trustExitCode false

git config --global --add diff.guitool kdiff3
git config --global --add difftool.kdiff3.path "C:/Program Files/KDiff3/kdiff3.exe"
git config --global --add difftool.kdiff3.trustExitCode false

注意:--我可以用简单的文件单独运行KDiff3,但不能在git项目中运行。有什么想法吗?

编辑:这里是我的.gitconfig:

代码语言:javascript
复制
[user]
    email = vahid.vdn@gmail.com
    name = vahid najafi
[diff]
    tool = kdiff3
    guitool = kdiff3
[merge]
    tool = diffmerge
    tool = kdiff3
    tool = kdiff3
[mergetool "diffmerge"]
    trustExitCode = true
[mergetool "kdiff3"]
    path = C:/Program Files/KDiff3/kdiff3.exe
    trustExitCode = false
[difftool "kdiff3"]
    path = C:/Program Files/KDiff3/kdiff3.exe
    trustExitCode = false
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-03-06 12:20:42

最后我做了另一个解决方案!我用的是meld而不是kdiff3。首先从梅尔德下载这里。然后在c:/Users/yourName/..gitconfig中更改meld的配置:

代码语言:javascript
复制
[user]
    email = vahid.vdn@gmail.com
    name = vahid najafi
[diff]
    tool = meld
[difftool "meld"]
    path = C:/Program Files (x86)/Meld/meld/meld.exe
[difftool]
    prompt = false
[merge]
    tool = meld
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/meld/meld.exe
[mergetool]
    keepBackup = false

注意:尝试使用git cmd而不是windows cmd。当您有冲突时,只需运行:git mergetool。有关更多细节和示例,请参见这里

票数 3
EN

Stack Overflow用户

发布于 2017-03-06 06:17:54

我不知道kdiff3,但您可能需要将要与工具调用比较的文件添加为参数(参见KDiff3 call 这里的命令行选项)。在全局配置(通过git config --global -e访问)中,相应的行应该如下所示:

代码语言:javascript
复制
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    trustExitCode = false
    cmd = 'C:/Program Files/KDiff3/kdiff3.exe' "$LOCAL" "$BASE" "$REMOTE" "$MERGED"

因为我没有在KDiff3中尝试这一点,所以您可能必须切换"$LOCAL" "$BASE" "$REMOTE""$MERGED"变量的顺序,但是 post应该提供了足够多的有关这方面的更多信息。虽然它是关于Meld工具,我很确定处理是类似的,并且有一些非常好的和信息丰富的答案。

编辑:假设您使用windows:您只需在Windows中(通常是在c:\user\yourusername\.gitconfig中)找到它,然后使用任何编辑器打开它。在Linux中,请参见这个职位。然后,将所有mergemergetooldifftool部分替换为:

代码语言:javascript
复制
[merge]
    tool = kdiff3
[mergetool "kdiff3"]
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$BASE" "$REMOTE" "$MERGED"
    trustExitCode = false
[difftool "kdiff3"]
    cmd = "C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$BASE" "$REMOTE" "$MERGED"
    trustExitCode = false

如果ot不工作,则可能必须更改"$LOCAL" "$BASE" "$REMOTE""$MERGED"变量的顺序或删除其中的一个变量。您可以在上面提供的链接中找到有关这方面的足够信息。

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

https://stackoverflow.com/questions/42611783

复制
相关文章

相似问题

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