2011-06-17 38 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

相關問題