在Git中,我如何区分我的分支的第一次提交?

时间:2011-06-17 19:58:18

标签: git git-diff

我已经对一个本地分支进行了多次提交,但是我不确定将我目前拥有的内容与我的分支的起始状态区分开来的最佳方法。我知道如果我的分支有6次提交,我可以做git diff HEAD HEAD~6之类的事情,但我希望能找到与提交次数无关的内容。

编辑: 我没有提到这个:我希望我不必挖掘日志来获取我分支的提交的哈希值。例如,如果我有80次提交,这将不是一项有趣的任务。

另外,假设我分支的原始分支已经有几处变化。

3 个答案:

答案 0 :(得分:64)

您需要使用git help diff中描述的三点语法:

git diff otherbranch...

这与:

相同
git diff otherbranch...HEAD

与:

相同
git diff $(git merge-base otherbranch HEAD) HEAD

merge-base命令打印“最佳”(最近的)共同祖先,因此上述命令显示与HEADotherbranch共有的最新提交的差异HEAD

请注意,您可以使用@{u}代替otherbranch来查看自上游分支分离后所做的更改。有关语法的详细信息,请参阅git help revisions

答案 1 :(得分:0)

git diff <SHA-1 of the commit from which you branched>..HEAD

您可以通过git log获取分支点的SHA-1。

答案 2 :(得分:0)

首先,您需要find the commit you branched from。一旦你有了,你可以简单地做一个git diff <branch-point>..HEAD(正如yasouser指出的那样)。