用途:删除属于已合并 PR 的远程分支。由于是破坏性操作,流程强制先试运行、再确认、最后删除。
删除规则(由 scripts/plan.sh 作为唯一判定来源):分支可删需同时满足——远程仍存在、有已合并 PR、没有开启中的 PR、未被保护。受保护分支为默认分支加 staging,即使有已合并 PR 指向它们也绝不删除。没有 PR、或只有已关闭但未合并 PR 的分支不可删。扩展保护集合只能改 scripts/plan.sh 中的 is_protected()。
步骤:1)试运行,执行 bash scripts/plan.sh(非 origin 时把远程名作为 $1 传入),输出格式为 <branch> #<pr> <title>,不删除任何内容;输出为空则报告“nothing to clean up”并停止。2)展示完整列表并向用户请求明确同意,模糊回复不得删除,此确认环节每次运行都必须执行。3)删除,对每个已确认分支执行 git push origin --delete <branch>,不得删除计划列表之外的分支。4)报告已删除内容,并说明失败的推送。
附带处理遗留 issue:Closes #N 仅在合并进默认分支时自动关闭,若 PR 合并进集成分支(如 rebuild/v1),#N 会一直开着。对本次清理的每个已合并 PR,检查其关联 issue:若工作已在默认分支但 issue 仍开启,手动关闭,命令为 gh issue close #N --reason completed --comment "merged via #<pr>"。
限制:仅适用于有远程仓库和 PR 工作流的 Git 项目;需具备删除远程分支与关闭 issue 的权限;具体依赖与安装方式资料未提供。