2017-03-15 51 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