SourceTree中的IntelliJ Diff工具

时间:2013-02-08 13:51:16

标签: git intellij-idea diff atlassian-sourcetree

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

由于

11 个答案:

答案 0 :(得分:23)

对于OSX android studio我完成了这个步骤:

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

Something like this:

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

 Like This:

差异参数:

diff $LOCAL $PWD/$REMOTE

合并参数:

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

如果一切正常就应该有效。

答案 1 :(得分:17)

花了一些时间来弄清楚论点。 Diff命令文本框应包含intellij的路径,如:/Applications/IntelliJ\ IDEA\ 12.app/Contents/MacOS/idea

enter image description here

答案 2 :(得分:11)

<强>窗
差异命令: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的差异和合并工具的论据:

差异工具
<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>

OFFICIAL DOCUMENTATION: running-intellij-idea-as-a-diff-or-merge-command-line-tool


FWIW,我最终使用IntelliJ进行源代码控制。我比Sourcetree更喜欢它。它非常强大。

答案 3 :(得分:5)

在Mac上使用intellij 2016

diff $LOCAL $PWD/$REMOTE

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

答案 4 :(得分:4)

对于今天(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

答案 5 :(得分:1)

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

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

答案 6 :(得分:1)

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

  1. 在SourceTree中合并两个分支
  2. 在IntelliJ IDE(对我来说,它是Webstorm)中,进入“ VCS-> Git->解决冲突”

这种方式很完美。

enter image description here

答案 7 :(得分:0)

使用 IntelliJ IDEA CE macOS 上。

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

enter image description here

其中:

  • open:打开文件和目录的系统命令。
  • -W:导致open等待它打开的应用程序(或已经打开的应用程序)退出。
  • -b com.jetbrains.intellij.ce:打开文件时要使用的应用程序的捆绑包标识符。
  • --args:所有剩余的参数都会传递到argv参数中已打开的应用程序main()

答案 8 :(得分: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,它将以短暂的延迟启动合并工具。

答案 9 :(得分:0)

在Windows和Sourcetree上使用PHPStorm 2013&gt; 2.4我必须转义参数并添加合并选项的完整路径。

Diff / Merge命令:

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

diff arguments:

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

合并参数:

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

Jetbrans docs command line merge

答案 10 :(得分:0)

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

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

使用

Diff命令: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以获取屏幕截图。

希望这对某人有帮助:-)