1

我在我的里面.gitconfig

[merge]
    tool = intellij
[mergetool "intellij"]
    cmd = /usr/local/bin/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 mergetool并获得 Intellij IDEA 的合并工具。

这样做的问题是因为我们从/usr/local/bin/idea需要管理员权限执行。但是,如果我运行sudo git mergetoolIDEA,这次会运行,但是作为sudo,导致所有更改的文件都更改了权限,特别是更改了文件的所有权。此外,它在以 sudo 运行时不会加载特定于用户的配置。

解决方案是什么?

4

1 回答 1

1

从 /usr/local/bin/idea 执行需要管理员权限

可执行文件的典型权限/usr/local/bin755,这意味着任何人都可以从那里运行可执行文件。(在 Mac 和 Ubuntu 18/04 上检查 - 权限相同)。

看起来系统上的某些配置错误,因此运行 ide 包装器需要 sudo。

相应地检查并调整权限 /usr/local/bin/idea。

于 2019-04-16T15:17:02.860 回答