30

是否可以在 SourceTree 中使用 IntelliJ Diff 工具?我知道它可以从终端访问。

谢谢

4

12 回答 12

29

对于 OSX android studio,我已经完成了以下步骤:

打开 IntelliJ/Android Studio -> 工具 -> 创建命令行启动器

像这样的东西:

之后,打开 SourceTree Preferences: 并将“/usr/local/bin/studio”放入 Diff/Merge 命令中。像这样:

像这样:

差异参数:

diff $LOCAL $PWD/$REMOTE

合并参数:

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED

如果一切正常,它应该可以工作。

于 2016-07-26T10:56:10.067 回答
19

Took some time to figure out arguments. Diff command text box should contain path to intellij, like: /Applications/IntelliJ\ IDEA\ 12.app/Contents/MacOS/idea

enter image description here

于 2013-02-08T14:23:39.243 回答
12

Windows
Diff 命令:C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.2\bin\idea.exe
参数:diff $LOCAL $PWD/$REMOTE

合并命令:C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.2\bin\idea.exe
参数:(这不适合我。我遇到了路径问题。) merge $LOCAL $PWD/$REMOTE $PWD/$BASE $MERGED


从 12.1 开始,这些是从程序外部使用 IntelliJ 的 diff 和 merge 工具的参数:

差异工具
<path to IntelliJ IDEA launcher> diff <path to file1> <path to file2>

合并工具
<path to IntelliJ IDEA launcher> merge <path to file1> <path to file2> <path to file3> <path to output>

官方文档:running-intellij-idea-as-a-diff-or-merge-command-line-tool


FWIW,我最终使用 IntelliJ 进行源代码控制。我比 Sourcetree 更喜欢它。它相当健壮。

于 2013-07-26T21:54:19.093 回答
9

对于今天(2019 年 1 月),它可以在如下窗口中运行:

外部差异/合并:

差异工具:

Diff Command: C:\Program Files\JetBrains\WebStorm 2018.3.1\bin\webstorm64.exe

Agruments: diff $LOCAL $REMOTE

合并工具:

Diff Command: C:\Program Files\JetBrains\WebStorm 2018.3.1\bin\webstorm64.exe

Agruments: merge $LOCAL $REMOTE $BASE $MERGED

于 2019-01-18T15:30:06.490 回答
5

如果有人对Mac中的Android Studio设置感兴趣:

<path to IntelliJ IDEA launcher>:
/Applications/Android\ Studio.app/Contents/MacOS/studio

Diff tool
<path to IntelliJ IDEA launcher> diff <path to file1> <path to file2>

Merge tool
<path to IntelliJ IDEA launcher> merge <path to file1> <path to file2> <path to file3> <path to output>

我注意到的唯一问题是 Android Studio 一次不能显示超过 1 个差异。当我尝试时,它抱怨无法显示文件

于 2015-12-21T09:55:53.067 回答
5

在装有 Intellij 2016 的 Mac 上

diff $LOCAL $PWD/$REMOTE

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$BASE $PWD/$MERGED
于 2016-03-31T06:30:32.447 回答
1

在 Windows 和 Sourcetree >2.4 上使用 PHPStorm 2013 我不得不转义参数并添加合并选项的完整路径。

差异/合并命令:

C:\Program Files\JetBrains\PhpStorm 2017.3.6\bin\phpstorm64.exe

差异参数:

diff \"$LOCAL\" \"$REMOTE\"

合并参数:

merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$MERGED\"
merge \"$PWD/$LOCAL\" \"$PWD/$REMOTE\" \"$PWD/$BASE\" \"$PWD/$MERGED\"

Jetbrans 文档命令行合并

于 2018-04-26T08:29:18.653 回答
1

对于 Windows 上的合并工具,这些参数对我有用:

merge $PWD/$LOCAL $PWD/$REMOTE $PWD/$MERGED
于 2016-02-26T10:54:54.103 回答
1

我最近发现了一种无需任何设置即可使用 IntelliJ Diff Tool 的更方便的方法。

  1. 合并 SourceTree 中的两个分支
  2. 在 IntelliJ IDE(对我来说它的 Webstorm)中去“VCS->Git->Resolve Conflicts”

这种方式非常有效。

在此处输入图像描述

于 2019-06-11T15:39:24.423 回答
0

正如@Shad 提到的,IntelliJ 可能不会在 Windows 中执行差异/合并,因为尚未创建临时文件。

一种解决方法是创建一个文件delayed-intellij.bat,如下所示:

ping 127.0.0.1 -n 2 > nul "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.1\bin\idea64.exe" %*

然后在 Sourcetree: 中使用这个文件C:\temp\idea64-delayed.bat,它会在短时间内启动合并工具。

于 2017-12-13T09:50:06.050 回答
0

在带有IntelliJ IDEA CE的macOS上。

差异命令open
参数-W -b com.jetbrains.intellij.ce --args diff "$LOCAL" "$PWD/$REMOTE"

在此处输入图像描述

在哪里:

  • open: 打开文件和目录的系统命令。
  • -W:导致open等到它打开(或已经打开)的应用程序退出。
  • -b com.jetbrains.intellij.ce:应用程序打开文件时使用的捆绑标识符。
  • --args:所有剩余的参数都传递给打开的应用程序的argv参数main()
于 2017-06-15T19:44:10.157 回答
0

让 IntelliJ 用作 SourceTree 的差异和合并工具

  • macOS 10.14.6
  • IntelliJ IDEA 2019.2.1(社区版)
  • 源树 3.2.1 (225)

使用

差异命令:open
参数:-W -b com.jetbrains.intellij.ce --args diff "$LOCAL" "$PWD/$REMOTE"

合并工具:open
参数:-W -b com.jetbrains.intellij.ce --args merge "$PWD/$LOCAL" "$PWD/$REMOTE" "$PWD/$BASE" "$PWD/$MERGED"

SourceTree > Preferences > Diff.

有关屏幕截图,请参见https://i.stack.imgur.com/YEQEV.png

希望这可以帮助某人:-)

于 2019-08-22T08:24:38.383 回答