我们希望查看两个分支分离的图表。运行
git log --oneline --graph
只显示当前分支。如何将两个分支都包含在这张图表里?git log --oneline --graph
只显示当前分支。如何将两个分支都包含在这张图表里?git log
命令接受零个或多个提交记录作为参数,展示指定提交记录之前的历史记录。当没有指定参数时,默认使用 HEAD
。在你的情况中,你需要提供你想要比较的两个分支的最新提交记录:
git log --graph --oneline currentbranch otherbranch
如果显示的内容不太多,您可以通过使用简化此过程
git log --graph --oneline --all
这个命令就好像你已经指定了 .git/refs
中的每一个引用作为要显示的提交。
我曾遇到相同的问题并来到这里,但没有任何答案帮助我展示两条分支正在如何分叉。最终我自己进行了实验并发现这个方法可行。
假设有分支A
和分支B
,我想看看它们在哪里开始有所不同。
git log --oneline --graph --decorate A B `git merge-base A B`^!
注意:不要忘记末尾有^!
。(它会排除merge-base
返回的提交的父提交。)
更新
如果存在多个合并基,则上述单行命令将不起作用。在这种情况下,请执行以下操作:
git merge-base A B -a
# e.g. output XXXX YYYY
git log --oneline --graph --decorate A B --not XXXX^ YYYY^
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
git log --graph --oneline 当前分支...另一个分支
,它会显示从两个分支头中的一个可到达的所有提交记录,但不包括同时可到达的提交记录。请注意,这里的三个点是必需的。 - chepner--graph
选项一样。 - Johncmp = log --graph --online HEAD
可以使用git cmp OTHERSHA
。 - Chris Pfohl