SourceTree中有没有一种方式可以对比两个分支的差异呢?

241

Sourcetree提供了一种可视化不同git分支之间差异的方法吗?

我正在寻找:

  • 已更改文件的名称
  • 这些文件之间的差异
5个回答

303

在日志视图中使用(OSX)或CTRL(Windows和Linux),并选择任意两个您喜欢的提交。无论这些提交属于哪个分支,都没有关系。

结果会显示类似以下内容的信息...

显示f03a18bf0370c62bb5fb5c6350589ad8def13aea和4a4b176b852e7c8e83fffe94ea263042c59f0548之间的所有更改

...在下方显示。


那是直觉上正确的做法,我尝试了一下。但不知为何在版本2.1和Mavericks 10.9.5上无法工作。奇怪的是,下面的命令似乎可以正常运行。 - eco
对于像我这样的笨蛋,CMD = Command ⌘。基本上答案建议如果您多选任意两个提交,则Sourcetree会自动显示差异。我更喜欢Gan的答案,但如果这更通用,那就用这个吧。 - KC Baltz
3
刚想问 GitKraken 是否也类似,现在看来它的工作方式也相似。 - Jeroen
太棒了。即使一个分支是本地的,另一个分支是我即将强制推送到远程的,也可以正常工作。 - Reversed Engineer
如果您最近将一个分支合并到另一个分支中,则此操作不会显示分支差异,仅显示所选提交之间的最近更改,而不是整个分支。 - G Huxley
使用Mercurial时,你所称之为“Log View”的功能被称为“History View”。 - Philippe Cloutier

244

另一种方法是右键单击一个分支,选择“与当前版本进行比较”上下文菜单命令(current指的是您当前正在使用的分支)。这将为您提供两个分支之间head提交的差异。

来源:https://answers.atlassian.com/questions/167126/sourcetree-diff-against-current-behavior#

截图(基于Sourcetree v1.9.5):

enter image description here

在上下文菜单中选择“与当前版本进行比较”后,您应该会看到以下消息:

显示 {commit_hash} 和工作副本之间的所有更改

选择“与当前版本进行比较”后,应该会出现一些已更改的文件列表,出现消息“显示{commit_hash}和工作副本之间的所有更改”


1
这个对我起作用了。使用直观的命令却没有。 - eco
“Diff against master”将是一个很好的补充。如果我选择主分支并选择“与当前版本比较”,我会看到当前功能分支的反向差异。 - BricoleurDev
这就是我一直在寻找的。 - yBother
你也可以对标签执行此操作。 - Chris Halcrow

21

您也可以通过按下ctrl键并单击要进行差异比较的两个分支提交来完成此操作。


4

在 macOS 上,按住 键,点击第一个分支,再次右键点击第二个分支,选择弹出菜单上的 Diff Against Current 选项。

图片描述

在右侧,您可以查看差异。

图片描述


1
您还可以使用外部差异工具。例如,我正在使用Beyond Compare。在将其设置为sourcetree中的外部差异工具之后,您可以使用CTRL选择要比较的两个文件,然后按CTRL + D。结果,Beyond Compare将启动,并准备好比较这两个文件。

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