git - 获取 merge 到另一个分支的分支列表

标签 git branch

我在以一种非复杂的方式执行此操作时遇到了一些麻烦...目前我可以通过输出分支来找出哪些分支被 merge 到一个分支中——从目标分支和主分支 merge ,写入这些分支的输出命令到文件,然后比较这两个文件。有没有人有更好的方法来获取此信息?

例如,假设分支 branch1、branch2 和 branch3 都是从 master 上切下来的,开发工作在它们上面完成。然后,branch1 和 branch2 merge 为 integrationBranch。该命令应该能够告诉我 branch1 和 branch2 已 merge 到 integrationBranch 中。

编辑:

当我运行 git branch --merged 时,首先 merge 的分支总是从输出中删除。

示例:

git checkout inegraionBranch
git merge origin/branch1
git merge origin/branch2

git branch merged
*integrationBranch
branch2

最佳答案

对于您的示例,您需要使用 git branch -a --merged integrationBranch

origin/branch1origin/branch2 这两个分支是远程分支,默认情况下不与 git branch 一起列出,所以也不是出现在你的输出中,除非你使用 -a 开关。

我猜你看到 branch2 的原因是你可能有一个名为 branch2 的本地分支 merge 到(即,问题不在于命令正在删除第一个分支)

编辑:

要将所有分支 merge 到 integrationBranch 但不 merge 到 master 中,您可以这样做:

git branch --list -a --merged integrationBranch | sed 's/^..//;s/ .*//' | xargs git branch --list -a --no-merged master

关于git - 获取 merge 到另一个分支的分支列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23296161/

相关文章:

git - 有什么方法可以告诉 git 忽略文件的某些行吗?

ruby - 提交时在开发/QA 服务器上自动化 git pull 过程

git - 预接收钩拒绝 : No JIRA Issue found in commit message?

git - 如何将 git 存储库从一个硬盘驱动器移动到另一个

git - 我应该将 master merge 到一个分支,然后再 merge 回 master 吗?

mercurial - 为什么 Mercurial 有时允许与祖先 merge ?

svn - "svn log --stop-on-copy"无法显示对高于创建分支的版本的修订所做的更改

git - merge 工具创建的 .orig 文件的预期用途是什么?

Git:如何找出标签在哪个分支上?

git - 使用 Git,如何在所有分支中搜索字符串?