git - 如何将 KDiff3 配置为 git 的 merge 工具和差异工具?

标签 git git-merge kdiff3 mergetool

最近我在使用 GitExtension 2.46,但与之相同的 Git 版本是 1.9.4.msysgit.2。为了只使用 Git 命令,我卸载了 GitExtension 并安装了可用的最新版本 GitKDiff3 .

当我进行 merge 并发生冲突时,我运行以下命令:

git mergetool

然后我收到消息:

The merge tool kdiff3 is not available as 'kdiff3'.

我猜它一定是通过 KDiff3 路径。

环境

  • 操作系统:Windows 10
  • Git 2.6.1.windows.1
  • KDiff3 0.9.98(64 位)

问题:

  • 我必须在 .gitconfig 文件中为命令 git mergetool 配置什么以打开版本为 LOCALREMOTE 的 KDiff3 GUI BASEMERGED 冲突文件?

  • 如何将其配置为将其用作比较工具?

最佳答案

这些网站非常有帮助,几乎,mergetooldifftool .我使用了全局配置,但可以毫无问题地被存储库使用。您只需要执行以下命令:

git config --global merge.tool kdiff3
git config --global mergetool.kdiff3.path "C:/Program Files/KDiff3/bin/kdiff3.exe"
git config --global mergetool.kdiff3.trustExitCode false

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

请注意,最新版本的 kdiff3 将可执行文件从应用程序文件夹 C:/Program Files/KDiff3 的根目录移动到应用程序文件夹内的 bin/文件夹中。如果您使用的是旧版本,请从上述路径中删除“bin/”。

trustExitCode 选项的使用取决于 diff 工具返回时您想做什么。来自 documentation :

git-difftool invokes a diff tool individually on each file. Errors reported by the diff tool are ignored by default. Use --trust-exit-code to make git-difftool exit when an invoked diff tool returns a non-zero exit code.

关于git - 如何将 KDiff3 配置为 git 的 merge 工具和差异工具?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33308482/

相关文章:

git - VS Code远程容器:容器中的开放存储库

git - 撤消 git 自动 merge

git - 如何使用 kdiff 获取目录 git branch diff

mercurial - Mercurial 可以使用更好的 diff 工具来更有效地存储其变更集吗?

git - 以下 Git 提交策略正确吗?

git - Cygwin 混帐 : The merge tool kdiff3 is not available

git pull 不更新带有 merge 分支的分支

git - 如何以当前用户身份运行 GIT 容器?

git rebase,提交重复

git - 如何设置 git 驱动程序以在 merge 时忽略文件夹