IntelliJ:查看本地和git提交/分支之间所有已更改文件的差异


103

使用IntelliJ的差异查看器是检查代码的一种非常好的方法,因为您可以使用IntelliJ代码编辑器的所有功能(重构,完成等)在本地版本中进行更改。

不幸的是,当您在IntelliJ中进行代码审查时,我还没有想出如何做最重要的事情,即:查看工作树中所有已更改文件的差异(签出到要合并的分支)另一个分支(您计划合并到的分支,例如“ master”)。

有谁知道如何做到这一点?


请参阅其博客文章之一中的“ 比较”部分。
维克(Vic)2012年

这个问题显示菜单的步骤显示差异列表中的所有文件VS另一分支(即主): stackoverflow.com/questions/40637055/...
阿兰·汤普森

Answers:


59

尽管乔恩·提尔森(Jon Tirsen)的答案是正确的,但您需要仔细阅读全文才能理解如何做。

这是Mac中相同图片。

  1. 我目前正在与hello_world合作,并希望与master进行比较。 在此处输入图片说明

  2. 接下来将弹出一个窗口。选择Files并按cmd + d

在此处输入图片说明

  1. 另一个显示差异的窗口。您可以执行许多不同类型的比较。使用cmd + shift + ]cmd + shift + [在文件之间切换。

在此处输入图片说明

差异提示:IntelliJ提供了高级差异功能。您可以在第3张图像上进行检查。


1
如何为整个项目而不是逐个文件执行此操作?
JoeMjr2

@ JoeMjr2我真的不确定今天是否可以使用该功能。您可以使用cmd + shift + [和浏览所有文件cmd + shift + ](如果使用Windows,请用ctrl替换cmd)。
unknownerror

2020版本更新中已对此进行了更改,请参阅下面的答案以获取更新的方法。
BlueYoshi

您还可以按提交ID比较2个修订版本吗?
DanMacák

85

现在已经实现了。为了比较两个分支,您可以执行以下操作:

  1. 签出您要与之比较的分支之一。
  2. 在IntelliJ窗口右下方状态栏中的Git分支弹出窗口中选择要与之比较的分支。显示带有一些选项的弹出窗口。
  3. 选择“比较”选项。
  4. 默认情况下,这将显示所有提交,您也可以选择“差异”选项卡以显示实际更改。

他们的一篇博客文章对此进行了更详细的描述。


4
使用任意提交而不是分支也可以做到这一点吗?我的意思是我可以为此快速创建一个本地分支,但这似乎有点麻烦。
罗宾(Robin)

@ Hikaru755你知道吗?我正在尝试做同样的事情
ycomp

@ycomp不,可惜不是。我现在已经为此创建了临时分支。
罗宾

1
@ Hikaru755是的,我创建了一个tmp分支,我想它已经足够好了。好像虽然矫枉过正
ycomp

3
@Robin是的,可以。打开文件的历史记录,选择两次提交,然后按Ctrl-D。它也可以在不同的分支之间工作。
Victor Sergienko

9

现在已实现。在项目上单击鼠标右键,然后选择“ Git-与分支比较...”,然后选择master分支。做完了 区分所有文件。


这是一个好方法。如果您看到该选项显示为灰色,那是因为您没有右键单击java / main / src项目文件夹。
jmojico

8

在2020版本更新中已对此进行了更改:

现在,您需要执行以下操作:

  1. 签出您要比较的分支之一。

  2. 打开“ 分支”菜单。

  3. 选择要与之比较的另一个分支。

  4. 选择“显示差异与工作树”

在此处输入图片说明


谢谢,我意识到它已经改变了,但不知道它去了哪里。
fmquaglia

1
这是目前最新的答案。其他答案与较旧的IntelliJ版本有关,但与当前版本无关。
帕维尔

1

如果您只是想以并行方式将当前打开的文件与另一个分支进行比较,请转到VCS-> Git->与分支比较。


6
那回答了一个问题,但是没有回答!:)
Lambart

1

右键单击该类,然后选择“ Git”选项,您将在其中看到“与分支比较”选项,从中可以选择特定的分支。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.