混帐 - 设置KDiff3作为默认的合并工具

问题描述:

管理冲突git,仍然是默认安装KDiff3后一个是开放对我来说:混帐 - 设置KDiff3作为默认的合并工具

enter image description here

下面是在这个answer提到的配置:

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 

NOTE:我可以用简单的文件单独运行KDiff3,但是我无法运行它我的git项目。任何想法?

编辑:这里是我的.gitconfig:

[user] 
    email = [email protected] 
    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 

最后我做了另一个解决方案!我用meld而不是kdiff3。首先从here下载meld。然后在C更改配置为meld:/Users/yourName/.gitconfig:

[user] 
    email = [email protected] 
    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 

注:尝试使用,而不是Windows cmd混帐cmd。当你有冲突时,运行:git mergetool。有关更多详细信息和示例,请参阅here

我不知道kdiff3,但您可能需要您要比较的文件添加到您的工具调用作为参数(参见命令行选项为KDiff3调用here)。在全局配置(通过git config --global -e访问),各行应该是这个样子:

[merge] 
    tool = kdiff3 
[mergetool "kdiff3"] 
    trustExitCode = false 
    cmd = 'C:/Program Files/KDiff3/kdiff3.exe' "$LOCAL" "$BASE" "$REMOTE" "$MERGED" 

由于我没有尝试这与KDiff3,您可能需要切换"$LOCAL" "$BASE" "$REMOTE""$MERGED"变量的顺序,但this后期应该提供足够的附加更多信息。虽然它是关于Meld工具的,但我很确定处理是类比的,并且有一些非常好的和翔实的答案。

编辑: 假设你使用Windows:你可以找到它在Windows资源管理器,通常在c:\user\yourusername\.gitconfig,并用任何编辑器打开它。在Linux中,请参阅this post。然后,用以下替换所有mergemergetooldifftool部分:

[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"变量的顺序或删除其中的一个。您可以在上面提供的链接中找到足够的信息。

+0

谢谢。我运行'git config --global -e',但是这个部分不存在:''$ LOCAL“”$ BASE“”$ REMOTE“”$ MERGED“' –

+0

是的,我期望的那么多。您应该添加它以确保KDiff3被正确的文件调用。 – kowsky

+0

我应该如何添加?因为我对此很新。 –