Git:如何列出提交在这个分支但不是从合并分支
假设你的git提交历史logging如下所示:
A---B---C---D---E---F master \ / X---Y---Z topic
是否有可能只有在主人,AF的提交git列表? 换句话说,如果提交是在一个合并分支,我不希望它显示。
git log
有选项--first-parent
,所以你不会得到topic
历史logging。
当从master
合并, master
承诺是合并的第一个父母。 Git日志允许只显示那些提交–first-parent,所以你得到正确的东西。
还有另外一种通用的方式来解决这个问题,它不依赖于在某些情况下会有帮助的--first-parent
。使用分支排除filter
git log origin/topic ^origin/master
这将给你一个origin/topic
的日志与所有的origin/master
的提交被删除。
你也可以添加--no-merges
,这将隐藏你可能或不想要的合并提交。
另一个方便的提示是使用shortlog
log
而不是log
,这会给你更多的简化摘要,可以方便地发布注释,或者在分支中传播什么。
更新
重新阅读后,你实际上会想要几乎与我发布的相反。 但是最终会排除master和foo( git log origin/master ^origin/foo
)上的所有内容。 但是你也可以得到你所要求的(隐藏所有提交是合并的一部分)与git log origin/master --no-merges
这不行吗?
git log master git log --stat master