2011-06-17 52 views
44

我已经提交了多个提交到本地分支,但我不知道什么是最好的方式来区分我目前的分支的起始状态。我知道我可以做类似git diff HEAD HEAD~6的事情,如果有6次提交给我的分支,但我希望有一些独立于提交次数的事情。在Git中,我如何区分我的分支的第一个提交?

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

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

回答

64

你要使用git help diff描述的三个点语法:

git diff otherbranch... 

这是一样的:

git diff otherbranch...HEAD 

这是一样的:

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

merge-base命令打印“最好”(最近)的共同祖先,所以上述co命令显示与HEADotherbranch共有的最近提交到HEAD的区别。

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

+2

在这个答案中,我学到了很多关于Git的知识。谢谢! – Newtang

0

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

你可以做一个git log让您的分支点的SHA-1。

+5

是的,这个工程。我想我希望有一个解决方案,它不涉及我通过日志挖掘来找到SHA-1散列。 (比如,如果我有80个本地提交的例子)。 – Newtang

相关问题