You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何列出所有已合并分支?覆盖PR合并的全分支场景

列出所有已合并PR对应的分支(无论目标分支类型)

如果你的代码托管在GitHub上,推荐用**GitHub CLI(gh)**来精准筛选所有已合并PR对应的分支,它能直接关联PR状态和分支信息,完全匹配你「只要发起PR且完成合并就纳入列表」的需求:

方法1:用GitHub CLI(gh)输出已合并PR的分支信息

  1. 确保已安装并登录gh(未安装的话用系统包管理器直接安装即可)

  2. 执行以下命令,会列出所有已合并PR的源分支、目标分支和PR标题:

    gh pr list --state merged --json headRefName,baseRefName,title --limit 1000
    

    参数说明:

    • --state merged:仅筛选已合并的PR
    • --json headRefName,baseRefName,title:指定输出字段(源分支名、目标分支名、PR标题)
    • --limit 1000:设置最大返回数量,避免因PR过多遗漏,可根据实际情况调整
  3. 想要更易读的格式化输出,可以结合jq工具:

    gh pr list --state merged --json headRefName,baseRefName,title --limit 1000 | jq '.[] | "- 源分支: \(.headRefName) | 目标分支: \(.baseRefName) | PR标题: \(.title)"'
    

方法2:纯Git命令(适合无GitHub CLI的场景)

Git本身没有直接关联PR的元数据,只能找出已被合并到任意分支的本地/远程分支,无法精准对应PR,但可以满足「列出已合并分支」的需求:

  • 列出所有已被合并到当前分支的本地分支:
    git branch --merged
    
  • 列出所有已被合并到指定分支(比如feature/login)的本地分支:
    git branch --merged feature/login
    
  • 列出所有已被合并的远程分支:
    git branch -r --merged
    

如果要找出所有被任何分支合并过的本地分支,可用遍历脚本:

git for-each-ref refs/heads --format='%(refname:short)' | while read branch; do
  merged_branches=$(git branch --merged "$branch" | grep -v "$branch")
  if [ -n "$merged_branches" ]; then
    echo "分支 $branch 包含以下已合并分支:"
    echo "$merged_branches"
  fi
done

注意:纯Git命令的结果基于分支合并提交记录,可能包含未发起PR但直接合并的分支;如果只需要有PR记录的合并分支,优先用方法1。

内容的提问来源于stack exchange,提问作者Raghvendra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 02:46:00