使用IntelliJ作为git mergetool总是一启动就退出

2024-01-04

我已经将 IntelliJ 配置为我的 mac 上的 diff 和 mergetool,但是 git 启动它,命令行总是立即返回,而不是等待 diff 完成,这意味着所执行的更改不会反映在磁盘上。

我的配置是:

[mergetool "intellij"]
    cmd = /Applications/IntelliJ\\ IDEA\\ 13\\ CE.app/Contents/MacOS/idea merge \
          $(cd $(dirname \"$LOCAL\") && pwd)/$(basename \"$LOCAL\") \
          $(cd $(dirname \"$REMOTE\") && pwd)/$(basename \"$REMOTE\") \
          $(cd $(dirname \"$BASE\") && pwd)/$(basename \"$BASE\") 
          $(cd $(dirname \"$MERGED\") && pwd)/$(basename \"$MERGED\")
    trustExitCode = true

我已经测试了在没有 git 的情况下手动调用 IntelliJ 并且它也立即返回,所以我不认为这是由 git 调用引起的,而是 IntelliJ 命令行调用只是发送一条消息以打开窗口到现有正在运行的实例IntelliJ.. 是否有一个选项可以强制 IntelliJ 不返回或生成新实例以使其工作?


现在这有效了。

运行“创建命令行启动器...”操作来创建启动脚本(对我来说是 /usr/local/bin/idea。)

在 .gitconfig 中:

[mergetool "idea"]
  cmd = idea merge \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\"
  trustExitCode = true

同样对于 difftool

[difftool "idea"]
  cmd = idea diff \"$LOCAL\" \"$REMOTE\"

(由于错误,您可能必须更新命令行启动器 https://youtrack.jetbrains.com/issue/IDEA-102936如果您不久前创建了它并且同时更新了 Intellij。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用IntelliJ作为git mergetool总是一启动就退出 的相关文章

随机推荐