用途:清理本地 Git 仓库中已合并到上游的分支,避免分支堆积。
主要能力:先执行 git fetch origin master 并列出除 master 外的本地分支;随后用多种方式判断合并状态:方法一用 git branch --merged origin/master 检测普通合并与快进合并;方法二用 git cherry -v origin/master <branch> 检测 squash 合并,若所有行以 - 开头或输出为空则视为已合并;方法三在 gh 已认证时用 gh pr list --head <branch> --state merged 与 --state closed 查询 PR 状态,mergedAt 为空表示关闭但未合并。始终与 origin/master 比较,而非本地 master。
使用方式:技能将分支分为已合并、已关闭未合并、无 PR/开放 PR 三类并展示表格,包含分支名、类别、PR 编号与标题、检测方法。确认时默认预选已合并分支,已关闭未合并分支逐个询问,无 PR 或开放 PR 分支不会自动删除。删除前若当前位于待删分支,先执行 git checkout master && git merge --ff-only origin/master,再用 git branch -D 删除,最后执行 git remote prune origin 清理远程跟踪引用,并汇总删除与保留情况。
适用场景:本地分支较多、需要按 PR 合并状态批量清理的 Git 工作流。
限制:依赖 GitHub 与 gh 认证,未认证时跳过 PR 状态检测;squash 检测依赖提交补丁等价性;不会自动删除无 PR 或开放 PR 的分支。