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

Sha*_*tin 26 git

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

che*_*ner 35

git log将零个或多个提交作为参数,显示导致该提交的历史记录.如果没有给出任何参数,HEAD则假定.对于您的情况,您希望提供要比较的两个分支头:

git log --graph --oneline currentbranch otherbranch
Run Code Online (Sandbox Code Playgroud)

如果显示不太多,您可以使用以简化此操作

git log --graph --oneline --all
Run Code Online (Sandbox Code Playgroud)

其行为就好像您已将每个引用都指定.git/refs为要显示的提交.

  • 使用该命令,分支结构不会出现在输出中.相反,提交显示为一个平面列表,就像没有使用`--graph`一样. (5认同)
  • @John我想你想要`git log --graph --oneline current branch ... otherbranch`,它显示了从两个分支头之一可以到达的所有提交,但不是两者都可以. (3认同)
  • 这两个命令都显示整个历史记录。有没有一种方法可以仅绘制自分支点以来每个分支上的变化图? (2认同)

fik*_*r4n 17

我有同样的问题,并在这里登陆,但没有答案帮助我显示两个分支如何分歧.最后我做了自己的实验,发现这很有效.

给定分支A和分支B,我想看看它们分歧的地方.

git log --oneline --graph --decorate A B `git merge-base A B`^!
Run Code Online (Sandbox Code Playgroud)

注意:不要忘记^!最后有.

UPDATE

如果合并库不止一个,则上面的一行命令不起作用.在这种情况下这样做:

git merge-base A B -a
# e.g. output XXXX YYYY
git log --oneline --graph --decorate A B --not XXXX^ YYYY^
Run Code Online (Sandbox Code Playgroud)

  • 这应该是首选的解决方案。正是我想要的。 (3认同)