如何查找分支是否已合并到任何分支(而不仅仅是特定分支)

时间:2014-04-17 02:10:08

标签: git version-control merge git-branch git-merge

我试图在一个相当大的项目中清理一些分支。我们基本上拥有master,一堆发布分支(其中只维护最新版本),并且每个版本都有功能/ bug修复分支。

该过程通常是错误修正/功能分支 - > current-release-branch - >主

现在我可以看到有相当多的旧功能/ bugfix分支超前于master - 但我想要做的是找到它们是否至少合并到发布分支。

然后我至少可以清理已经合并以释放分支的所有feature / bugfix分支,让我只手动计算a)在发布分支上的master中缺少什么, b)任何从未合并的特征分支。

2 个答案:

答案 0 :(得分:2)

git branch -a --merged {commit}列出可从指定提交到达的所有分支 --no-merged列出所有不可到达的分支

这就是你需要的。

http://git-scm.com/docs/git-branch

"使用--contains,仅显示包含命名提交的分支(换句话说,提示提交是指定提交的后代的分支)。使用--merged,将仅列出合并到命名提交的分支(即,可以从命名提交到达提示提交的分支)。使用--no-merged时,仅列出未合并到命名提交的分支。如果缺少参数,则默认为HEAD(即当前分支的尖端)。"

答案 1 :(得分:0)

就像

一样简单
git branch -a --contains <id>

<id>可能是变更集i,标记名称或分支名称