IntelliJ和Git:如何查看提交和两个较旧提交之间的差异?

时间:2017-06-12 10:14:24

标签: git intellij-idea git-diff

你可能知道这个窗口,在那里你可以看到提交给旧提交的提交之间的差异。

enter image description here

你知道我怎么能看到完全相同的比较,但是在提交和之前的提交之间,它不一定是当前提交之前的一个。

我知道我可以按一个文件执行此操作,但我想为整个项目执行此操作。

4 个答案:

答案 0 :(得分:7)

您可以在git log窗口中选择任意数量的提交(使用shift / ctrl和click或光标键),右侧窗格将显示累积的差异。

答案 1 :(得分:3)

在IntelliJ中,遗憾的是没有命令或操作来比较确切的修订版。 以下是几个相关的请求: https://youtrack.jetbrains.com/issue/IDEA-125616https://youtrack.jetbrains.com/issue/IDEA-100431

但是,有一种方法可以查看两次提交之间发生了哪些变化。为此,您需要转到Version控件 - Log选项卡并选择所需提交之间的整个范围(例如,选择稍后的提交,然后向下滚动到较旧的提交并使用Shift单击它)。在显示已更改文件的右侧窗格中,您将看到所有更改。

答案 2 :(得分:0)

另一种方法:

  1. 打开1: Project面板
  2. 右键单击项目的根文件夹
  3. 从菜单中选择GitShow History

这将打开一个完全不同的git日志视图,您可以在其中精确地执行主要(9: Version Control)git log的预期工作,即:

  1. 选择(仅!)两次提交
  2. 点击Compare

从出现的弹出对话框中,您可以选择任何文件,然后按 Ctrl -/ Cmd -D(或右键单击并选择唯一的菜单项)查看更改。

不幸的是,似乎没有任何方法可以将该视图“固定”到您的工作空间,尽管只要您需要它就可以悬停在顶部。

希望有一天,JetBrains将创建这些UI的“两全其美”合并版本,因此我们只需要比较Version Control主日志中的内容即可。要添加到另一个答案中列出的此问题的JetBrains票证列表中,最早的票证似乎是https://youtrack.jetbrains.com/issue/IDEA-86480

答案 3 :(得分:0)

也在CLion中(我认为在其他JetBrains IDE中是相同的):

  1. 打开VCS日志
  2. 通过其他分支机构过滤VCS日志(例如,personal / sherstennikov / krt-23941)
  3. 前n个提交必须是我们要与当前分支区别的其他分支上的范围
  4. 单击鼠标左键选择其他分支HEAD
  5. 右键单击它
  6. 在菜单“分支”中选择(例如:“个人/ sherstennikov / krt-23941”分支)
  7. 通过右侧的箭头展开,然后单击“与当前比较”
  8. 您会看到一个窗口(请参见图片)“与root进行比较” 左上方窗格包含来自其他分支的提交范围 左下方窗格包含当前分支的日志 右窗格包含其他分支中的commit / several-selected-commits(如果选择了范围,则文件列表是累积的)与current-branch中的HEAD(或选择)之间的文件列表
  9. 现在您可以在右窗格中单击文件,以在单独的窗口中获取所选版本之间的差异(我们将其称为file-diff-between-other-and-current-window) 10.同样,在统一/并排查看器选择器左侧的“其他和当前窗口之间的文件差异”中,有一个控件可以在上述文件列表中的文件之间进行切换,不同

finbal windows