我在发布分支中,在不同的时间点有一些merge --no-ff feature
。
git log --first-parent
(概念上)的输出如下所示:
git checkout release
git log --oneline --first-parent
C1 Merge branch feature <--- release HEAD
C2 Merge branch some other thing
C3 Merge branch hotfix
C4 Merge branch etc
C5 Merge branch feature
C6 ...
我正在寻找获得以下输出的方法:
C1
C5
所有合并都是使用git merge --no-ff
创建的。
答案 0 :(得分:1)
此问题不是最好的定义,但请考虑:
git log --merges --first-parent --grep feature
具有简单的优点。 --merges
仅保留合并提交; --first-parent
仅遵循第一父链接;并且--grep feature
在提交消息文本中搜索单词“feature”。
或者,要解决稍微不同的问题,您可以尝试选择以下提交:
HEAD
到达;和feature
但是没有语法。 git rev-list
命令可以选择合并的提交,并且可以从任何给定点访问,但它只能执行析取(union /“或”)。 (这是Mercurial的修订选择语法胜过Git的地方之一。)你必须使用git rev-list
两次,一次获得每个列表,然后使用另一个程序(comm
是明显的一个)来找到两组的交集。