Git日志图,显示两个分支如何发散

时间:2014-11-06 16:25:49

标签: git

我们希望查看两个分支如何发散的图表。运行git log --oneline --graph仅显示当前分支。我们如何在图表中包含两个分支?

3 个答案:

答案 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