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

我已经提交了几个提交到本地分支,但我不知道什么是最好的方式来区分我目前对我的分支的起始状态。 我知道我可以做一些像git diff HEAD HEAD~6如果有6次提交给我的分支,但是我希望有一些独立于提交次数的东西。

编辑:我没有提到这一点:我希望我不需要挖通过日志来获得我从分支提交的散列。 例如,如果我有80个提交,这不会是一个有趣的任务。

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

你会想要使用git help diff描述的三点式语法:

 git diff otherbranch... 

这是一样的:

 git diff otherbranch...HEAD 

这是一样的:

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

merge-base命令打印出“最好的”(最近的)共同祖先,所以上面的命令显示了HEAD与其他otherbranch最近提交的头文件与HEAD有共同之处。

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

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

您可以通过执行git log来获得分支点的SHA-1。

首先,你需要find你分支的提交 。 一旦你有了,你可以简单地做一个git diff <branch-point>..HEAD (就像yasouser指出的那样)。