git - 将 KDiff3 设置为默认合并工具
git - set KDiff3 as default mergetool
安装 KDiff3
以管理 git
中的冲突后,我仍然打开默认的:
这里是中提到的配置:
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 :
[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
我不知道 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 post 应该提供足够的额外有关此的更多信息。虽然它是关于 Meld 工具的,但我很确定处理是类比的,并且有一些非常好的和信息丰富的答案。
编辑:
假设您使用 windows:您可以在 Windows 资源管理器中找到它,通常在 c:\user\yourusername\.gitconfig
中,然后使用任何编辑器打开它。在 Linux 中,参见 this post。然后,将所有 merge
、mergetool
和 difftool
部分替换为以下内容:
[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"
变量的顺序或删除其中之一。您可以在上面提供的链接中找到足够的相关信息。
最后我又做了一个解决方案!我使用 meld
而不是 kdiff3
。先下载meld from here。然后在 c:/Users/yourName/.gitconfig 中更改 meld
的配置:
[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
。有关详细信息和示例,请参阅 here。
安装 KDiff3
以管理 git
中的冲突后,我仍然打开默认的:
这里是
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 :
[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
我不知道 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 post 应该提供足够的额外有关此的更多信息。虽然它是关于 Meld 工具的,但我很确定处理是类比的,并且有一些非常好的和信息丰富的答案。
编辑:
假设您使用 windows:您可以在 Windows 资源管理器中找到它,通常在 c:\user\yourusername\.gitconfig
中,然后使用任何编辑器打开它。在 Linux 中,参见 this post。然后,将所有 merge
、mergetool
和 difftool
部分替换为以下内容:
[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"
变量的顺序或删除其中之一。您可以在上面提供的链接中找到足够的相关信息。
最后我又做了一个解决方案!我使用 meld
而不是 kdiff3
。先下载meld from here。然后在 c:/Users/yourName/.gitconfig 中更改 meld
的配置:
[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
。有关详细信息和示例,请参阅 here。