如何制作一个' git diff branch1 ... branch2'在Intellij?

时间:2014-03-26 13:48:50

标签: git intellij-idea compare diff

Intellij有一种很好的方式来展示两个git分支与Compare tool之间的差异。

但是,这似乎与

相对应
git diff branch1..branch2

有没有办法执行

git diff branch1...branch2

(有三个点)

3 个答案:

答案 0 :(得分:0)

我已经阅读了IntelliJ上的文档,搜索了VCS上的选项,没有找到任何指定diff的选项。

通过阅读diff上的文档,我只能建议您导航到合并库,签出另一个分支并执行diff,如:

假设:

  • branch1是主线​​
  • branch2分支branch1
  • 提交abc123branch1branch2
  • 的合并基础

执行:

git checkout abc123
git checkout -b branch1-temp

然后转到IntelliJ并比较这两个分支。否则,只需使用命令行...表示法。

答案 1 :(得分:0)

还有一种查看Intellij Idea更改的方法,就像在三点git diff中看到的那样。

为什么要使用三点差异

我将在需要三点差异时描述我的情况。我需要检查github上的大量拉取请求。分支F(eature)M(aster)分支出来,对两者进行了一些更改,然后对M(aster)的某些更改已合并到F(eature)中。现在,在进行了更多更改之后,我想将F(eature)合并到M(aster)中。

F -> M | | * * | | * * |\ | | \ | | \ | * * <- X | | * * \ | \ | \ | * <- P

解决方案

  1. 创建三点差异并将其从命令行转储到文件中

git diff master...feature > diff

  1. 结帐提交X

  2. 在“想法”中,打开“应用补丁”对话框,然后选择在步骤1中创建的文件。

现在您将看到Apply patch对话框,其更改与您在github pull request中看到的更改类似

缺点

您无法更改分支F(eature)

中的任何内容

您看不到谁提交了更改

在应用补丁之前,您无法编译/运行

答案 2 :(得分:0)

我找到了一种可以但又不完美的方法。

右键单击项目-> Git->与...比较...

然后在“文件修订”对话框中选择不属于此分支的最顶层的提交。这可能很难确定,但是很有可能这是另一位作者的第一个。例如,如果这是文件修订历史记录:

d4c3af  today         Craig
c3af21  today         Craig
b2af3a  yesterday     Bob
a1af73  two days ago  Alice

如果我知道我正在审查Craig的分支机构,我会选择Bob的提交。然后IntelliJ给了我一个区别,只是对克雷格的分支所做的更改。