GitKraken - 如何比较两个分支

50

有没有办法在GitKraken中比较两个分支(branch1和branch2)?

我想要一个显示有变更的文件列表。

6个回答

27
如果您想查找A分支和B分支之间的差异, 首先要检出A分支,然后单击B分支并选择提交记录, 这样您就可以在右侧面板中找到更改。
并且可以使用Shift单击选择多个提交行图形以显示其合并的差异。

3
我使用Shift键并点击“Commit”,然后选择它们,请尝试。 - amin saffar
2
我认为使用Ctrl键是更好的解决方案。使用Shift键无法得到预期的结果。它显示了“合并差异”,这与比较两个分支的最后提交不等同。 - lucaslugao
@LucasLugãoGuimarães 我现在测试了一下,Ctrl键和Shift键的结果是相同的! - amin saffar
如果在提交之间对树进行了文件删除或其他中间操作,则可能会导致Shift和Ctrl键的结果不同。 - lucaslugao
1
在Mac上,使用“cmd”键而不是“ctrl”键来查看两个提交之间的差异。仅在第二次提交时按下“cmd”键。 - Brian Hong
1
这种来回的操作有点令人困惑,所以我想为大家澄清一下。当您选择2个提交(使用cmd-click或shift-click都可以)时,您将获得这两个提交之间的差异。这就是您比较2个分支时想要的结果。只需为每个分支选择最新的提交即可。但是,如果您选择超过2个提交(再次使用cmd-click或shift-click),则会得到完全不同的东西:一个“合并差异”。合并差异实际上只是每个提交差异的直接合并。这不是您比较2个分支时想要的结果。 - jaquinocode

26

19
据我所知,GitKraken在比较分支的提交方面有所限制。不过,你可以使用Soloing来实现你想要的功能:右键单击你想要比较的第一个分支,选择“Solo”。分支名称左侧将显示橙色圆圈而非眼睛图标。然后点击第二个分支旁边的淡橙色图标,即可只显示这两个分支的提交记录。
接下来,你只需选择其中一个提交记录,同时按住Shift点击另一个提交记录。 更改文件列表将显示在右侧,单击文件还可以查看其内容的差异。
需要注意的是,你无法设置差异的方向(源和目标分支),但这种方法对我找出两个分支之间的变更非常有帮助。

4
我不确定为什么您需要进入单独模式。我可以点击选择任何一个提交,然后按住Shift再点击另一个提交,GitKraken侧边栏就会显示它们的差异,无需进行任何单独操作。 - ruffin
1
确实可以这样做,但如果你有很多分支,定位这两个提交可能会很麻烦。问题特别是如何比较分支,单独对它们进行操作可以带来第一个过滤器,有助于比较分支。 - Mickael V.

3

我不知道这个功能是否很新,但是在GitKraken中现在非常简单地显示两个分支的差异。

您只需单击第一个分支的提交,按住Shift键,然后单击第二个提交,它可以位于任何位置,例如第二个分支的提交。

您可以单独显示这两个分支以简化图表,然后执行此操作。


2

我检查两个分支之间差异的方法有两种:

  • 使用“git difftool branch1..branch2”命令,其中我的difftool指定为图形工具(我通常使用xxdiff)。

  • 另一种方法(可能更容易)是在最好的Visual Studio Code中使用比较分支功能。有关详细信息,请参见此处:如何在Visual Studio Code中比较不同分支


-2
我想要一个已更改文件的列表。

git whatchanged

  • 您可以始终使用命令行并使用git whatchanged命令。完整文档可在https://git-scm.com/docs/git-whatchanged找到。
  • 此命令支持许多git log标志,因此您也可以使用它们。

enter image description here


基于以下评论:

假设有两个同事在同一个错误上工作...你想比较这两个分支...找到最好的解决方案(真实例子)

有几种方法可以找到2个分支之间的差异:

**如果结果为空,请交换分支

  • git diff <branch1>...<branch2>
  • git diff <branch1> ^<branch2>
  • git log <branch1>...<branch2>
  • git whatchanged

使用这个命令,我可以将当前分支与起始点进行比较...对吧...而不是与其他分支进行比较... - Michalis
你想要比较几个分支吗? - CodeWizard
假设有两个同事在同一个 bug 上工作,你想要比较这两个分支,以找到最佳解决方案(真实例子)。 - Michalis
我会为您更新答案,这样您就可以接受它了 :-) - CodeWizard
8
OP问如何在GUI工具“GitKraken”中实现这一点。你提供的解决方案虽然信息丰富,但并没有达到这个目的。 - evolutionxbox
非常正确。也许你的回答可以补充一下是否在GUI中可能实现? - evolutionxbox

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接