我已经提交了多个提交到本地分支,但我不知道什么是最好的方式来区分我目前的分支的起始状态。我知道我可以做类似git diff HEAD HEAD~6
的事情,如果有6次提交给我的分支,但我希望有一些独立于提交次数的事情。在Git中,我如何区分我的分支的第一个提交?
编辑: 我没有提到这一点:我希望我不需要挖掘日志以获得我从分支提交的散列。例如,如果我有80次提交,这不会是一件有趣的任务。
另外,假定我从原来分支的分支已经有了几个变化。
我已经提交了多个提交到本地分支,但我不知道什么是最好的方式来区分我目前的分支的起始状态。我知道我可以做类似git diff HEAD HEAD~6
的事情,如果有6次提交给我的分支,但我希望有一些独立于提交次数的事情。在Git中,我如何区分我的分支的第一个提交?
编辑: 我没有提到这一点:我希望我不需要挖掘日志以获得我从分支提交的散列。例如,如果我有80次提交,这不会是一件有趣的任务。
另外,假定我从原来分支的分支已经有了几个变化。
你要使用git help diff
描述的三个点语法:
git diff otherbranch...
这是一样的:
git diff otherbranch...HEAD
这是一样的:
git diff $(git merge-base otherbranch HEAD) HEAD
merge-base
命令打印“最好”(最近)的共同祖先,所以上述co命令显示与HEAD
与otherbranch
共有的最近提交到HEAD
的区别。
请注意,您可以使用@{u}
代替otherbranch
,以查看您从上游分支发散后所做的更改。有关语法的详细信息,请参阅git help revisions
。
git diff <SHA-1 of the commit from which you branched>..HEAD
你可以做一个git log
让您的分支点的SHA-1。
是的,这个工程。我想我希望有一个解决方案,它不涉及我通过日志挖掘来找到SHA-1散列。 (比如,如果我有80个本地提交的例子)。 – Newtang
首先,您需要find the commit you branched from。一旦你有了,你可以简单地做一个git diff <branch-point>..HEAD
(如yasouser指出)。
在这个答案中,我学到了很多关于Git的知识。谢谢! – Newtang