我已經提交了多個提交到本地分支,但我不知道什麼是最好的方式來區分我目前的分支的起始狀態。我知道我可以做類似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