2014-11-06 52 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^