首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Intellij中创建“git diff branch1...branch2”?

如何在Intellij中创建“git diff branch1...branch2”?
EN

Stack Overflow用户
提问于 2014-03-26 21:48:50
回答 3查看 749关注 0票数 3

Intellij有一个很好的方法来用Compare tool来表示两个git分支之间的差异。

但是,这似乎对应于

代码语言:javascript
复制
git diff branch1..branch2

有没有一种方法可以

代码语言:javascript
复制
git diff branch1...branch2

(带三个点)

EN

回答 3

Stack Overflow用户

发布于 2014-03-27 17:50:56

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

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

假设:

  • branch1是从mainline
  • branch2分支出来的branch2

,branch1

  • commit abc123branch1branch2

的合并基础

执行以下操作:

代码语言:javascript
复制
git checkout abc123
git checkout -b branch1-temp

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

票数 1
EN

Stack Overflow用户

发布于 2018-08-08 16:57:48

还有另一种方式可以看到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. Checkout commit X
  2. In Idea,打开Apply patch对话框,然后选择在step 1

中创建的文件

现在您将看到应用补丁对话框,其中的更改与在github拉取请求中看到的更改类似

缺点

您不能在分支F(eature)中更改任何内容

您看不到谁提交了更改

在应用修补程序之前,您无法编译/运行

票数 1
EN

Stack Overflow用户

发布于 2020-07-29 07:23:31

我找到了一种方法,虽然还不错,但并不完美。

右键单击项目-> Git -> Compare With...

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

代码语言:javascript
复制
d4c3af  today         Craig
c3af21  today         Craig
b2af3a  yesterday     Bob
a1af73  two days ago  Alice

如果我知道我正在审查Craig的分支,我会选择Bob的提交。然后,IntelliJ给了我一个差异,只是克雷格分支中的变化。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22662990

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档