2014-11-06 70 views

回答

14

git log將零個或多個提交作爲參數,顯示導致該提交的歷史記錄。當沒有給出參數時,假定HEAD。對於你的情況,你要提供你要比較的兩個分支負責人:通過使用

git log --graph --oneline --all 

充當如果

git log --graph --oneline currentbranch otherbranch 

如果它沒有顯示太多,你可以簡化這個您已將.git/refs中的每個引用都指定爲要顯示的提交。

+0

文檔:https://www.kernel.org/pub/software/scm/git/docs/git-log.html – 2014-11-06 16:36:15

+1

這兩個命令都顯示整個歷史記錄。有沒有辦法只繪製自分支點以來每個分支上的變化? – John 2016-03-30 22:34:06

+1

@John我想你想'git log --graph --oneline當前分支... otherbranch',它顯示所有可從兩個分支頭中的一個到達的提交,但不是來自兩者。 – chepner 2016-03-30 23:40:25

1
git log --graph --abbrev-commit --decorate --date=relative --format=format:'%C(bold blue)%h%C(reset) - %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)' --all 
+0

兩個請求。 1.請提供一個簡化的版本來回答問題,但不提供額外的功能。 2.你能解釋一下如何只顯示兩個分支,而不是所有分支。 – 2014-11-06 16:35:11

3

我有同樣的問題,並在這裏着陸,但沒有答案幫助我顯示兩個分支如何分歧。最終我做了自己的實驗,發現這個工作。

鑑於分支A和分支B,我想看看他們在哪裏分歧。

git log --oneline --graph --decorate A B `git merge-base A B`^! 

注意:不要忘記最後有^!

UPDATE

上面的一行命令中沒有的情況下的合併基礎工作是多於一個。在這種情況下,請執行以下操作:

git merge-base A B -a 
# e.g. output XXXX YYYY 
git log --oneline --graph --decorate A B --not XXXX^ YYYY^