2017-03-15 48 views
0

给定两个git commit哈希,如何查找这些提交之间所有关联合并的分支名称?如何找到两个git提交之间的合并?

我想写一个脚本来收集有关哪些分支已合并到两个给定日期之间指定的目标分支的统计信息。

我知道你可以得到所有分支的列表合并到目标分支用以下命令:

git branch --merged <target_branch> 

但你怎么把它限制在一定范围内的提交?

+0

“之间”本身是模糊的(由于分支和合并结构的DAG中的概念) - 也许你需要'git rev-list --ancestry-path^exclude include'的等价物,但也许不是 - 但是一旦你把所有提交的集合视为“之间”,“--min-parents = 2'aka'--merges'(如Andrew Miner的答案)将选择这样的提交。 – torek

回答

1

我想你想使用命令和--merges标志。因此,举例来说,如果你想找到所有release-1.0release-2.0之间的合并,你会说:

git log release-1.0..release-2.0 --merges 
+0

这似乎包括两个提交之间的所有日志,而不仅仅是那些合并到目标分支中的日志。 – Cerin

+0

这很奇怪......我绝对认为它仅限于当我使用'--merges'参数时合并。另外,这里是[官方文档](https://git-scm.com/docs/git-log#git-log---merges)。你使用的是什么平台/ git版本? –

+0

是的,它限制它合并,但它显示合并到所有分支,而不仅仅是我的目标分支。 – Cerin