Git diff在分支中引入的提交

时间:2019-04-04 23:46:54

标签: git branch diff

我有不同的旧分支要删除,但我想看看当时我最初在分支中引入的commits / diff。

我不希望“ master”和“ branch”之间存在差异,但是该分支中引入的所有统一提交都作为单个差异。

有可能吗?

1 个答案:

答案 0 :(得分:1)

如果您需要“来自”分支的diff或提交列表,就像这样已经合并到您的master中的分支

A---B---F---G---H---I---J <<< master <<< HEAD
     \         /
      C---D---E <<< branch-a

在这里,H是合并提交,而B是提交branch-a的分支。

如果愿意

git diff master branch-a

正如您所指出的,您不会获得branch-a上提交列表的差异,而是合并合并提交以来发生的累积更改的差异,完全不同。

因此,您必须在branch-aE)的尖端和两个分支(B)之间的merge-base之间进行区分:

git diff `git merge-base branch-a master` branch-a

...,正如jthill below所指出的那样,使用特殊的three-dots syntax可能会略微冗长,达到相同的效果:

git diff master...branch-a

当然,您可以在此处添加所需格式显示的代码差异或文件列表所需的任何选项。在特定格式的情况下,也许可以告诉我们更多信息。

但是或者,您也可能希望获取提交列表,并且提取起来并不困难,您可以这样做

git log `git merge-base branch-a master`..branch-a

(注意两个使其成为一个范围,不要与上面的三个点混淆)


此外,如有任何疑问,请查看有关修订的非常有用的doc