我们希望查看两个分支如何发散的图表。运行git log --oneline --graph
仅显示当前分支。我们如何在图表中包含两个分支?
答案 0 :(得分:30)
git log
将零或多个提交作为参数,显示导致该提交的历史记录。如果没有给出参数,则假定为HEAD
。对于您的情况,您希望提供要比较的两个分支头:
git log --graph --oneline currentbranch otherbranch
如果显示不太多,您可以使用
简化此操作git log --graph --oneline --all
表现为好像已将.git/refs
中的每个引用都指定为要显示的提交。
答案 1 :(得分:12)
我遇到了同样的问题,并在这里登陆,但没有回答帮助我显示两个分支如何发散。最后我自己做了实验,发现这很有效。
鉴于分支A
和分支B
,我希望看到它们分歧的位置。
git log --oneline --graph --decorate A B `git merge-base A B`^!
注意:不要忘记最后有^!
。
<强>更新强>
上面的一行命令在合并基数不止一个的情况下不起作用。在这种情况下,请执行以下操作:
git merge-base A B -a
# e.g. output XXXX YYYY
git log --oneline --graph --decorate A B --not XXXX^ YYYY^
答案 2 :(得分:0)
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