如何从主题分支中查找合并提交

时间:2017-11-06 21:27:49

标签: git merge

我在发布分支中,在不同的时间点有一些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创建的。

1 个答案:

答案 0 :(得分:1)

此问题不是最好的定义,但请考虑:

git log --merges --first-parent --grep feature

具有简单的优点。 --merges仅保留合并提交; --first-parent仅遵循第一父链接;并且--grep feature在提交消息文本中搜索单词“feature”。

或者,要解决稍微不同的问题,您可以尝试选择以下提交:

  1. 合并提交(至少有两个父母);
  2. 可从HEAD到达;和
  3. 可从feature
  4. 的当前提示到达

    但是没有语法。 git rev-list命令可以选择合并的提交,并且可以从任何给定点访问,但它只能执行析取(union /“或”)。 (这是Mercurial的修订选择语法胜过Git的地方之一。)你必须使用git rev-list两次,一次获得每个列表,然后使用另一个程序(comm是明显的一个)来找到两组的交集。