macos - 如何配置 kdiff3 而不是 emerge 作为 git mergetool?

标签 macos git merge config kdiff3

我在 mac OSX Snow Leopard 上安装了 Git,我尝试编辑我的 merge 和差异工具以使用 kdiff3 而不是 emerge。

但是当我尝试使用它时,它不会启动 kdiff 的 GUI 并让我使用基于 cmd 的界面。

我在 gitconfig 中的设置是:

[merge]
     tool = kdiff3
[mergetool "kdiff3"]
    cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3
    args = $base $local $other -o $output
    trustExitCode = false
[diff]
tool = kdiff3
[difftool "kdiff3"]
cmd = /Applications/kdiff3.app/Contents/MacOS/kdiff3
args = $base $local $other -o $output
trustExitCode = false

明明是少了什么,但我做错了什么?

最佳答案

最近的 Git 版本内置了对 kdiff3 的支持,因此无需使用通用 cmdargs 设置手动配置它.而是这样做:

$ git config --global merge.tool kdiff3

如果 kdiff3 不在您的 PATH 环境中,也可以:

$ git config --global mergetool.kdiff3.path /Applications/kdiff3.app/Contents/MacOS/kdiff3

这使得 git mergetool 启动 kdiff3。注意 there is no way将 Git 配置为在有冲突的手动 merge 后自动启动您的 merge 工具。

如果您真的想了解 Git 如何在内部调用 kdiff3,请查看 the built-in mergetool configuration for kdiff3 .

编辑:对于Beyond Compare 4 ,现在也支持 Mac OS X,只需将 kdiff3 替换为 bc3(是的,“3”)并调整上述行中的路径。从 Git 2.2.0 开始,您将能够使用 bc 作为 bc3 的别名,这样您就不必关心版本号了。

关于macos - 如何配置 kdiff3 而不是 emerge 作为 git mergetool?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9776434/

相关文章:

objective-c - didActivateNotification 没有响应 NSUserNotification

python - 适用于 OS X 的 Numpy-MKL

git - 当我 "git push"git 现在说 "Create pull request for ..."。为什么?

git 提交修改而不丢失标签

kotlin - 我可以指示 Kotlin 关联第一个元素而不是与键提取器匹配的最后一个元素吗?

尽管刷新和事务提交, hibernate 实体属性没有被持久化到数据库中

macos - 具有 OpenGL 3.2 核心配置文件的 OS X 上的过剩

在 Mac 终端中编译并运行 Sublime Text 文件

git - 添加本地存储库作为远程存储库的子目录

r - 在 R 中合并行