用途:面向 bare 仓库 + worktree 的仓库布局做例行清理。用户要求“fetch prune”“清理过期分支/worktree”或“把 main/dev 更新到最新”时使用。
主要能力:在 .bare 目录(或仓库根)执行 git fetch --prune origin 并报告被修剪的引用;用 git branch -vv 找出 upstream 已 gone 的分支;用 git worktree list 与 git worktree prune --dry-run 找出过期或仅剩元数据的 worktree;清理后对 main、dev 等重要分支执行 git pull --ff-only origin <branch>。
使用方式:先定位 bare 根目录(当前目录含 .bare/ 则用它,否则 git rev-parse --git-common-dir);拉取修剪;对每个 gone 分支用 forge CLI(如 gh pr list --state all --head <branch>)核实是否存在已合并 PR,且 PR 头部提交与本地 tip 一致,才算已发布可删;否则标为高风险。worktree 用 git worktree remove、分支用 git branch -D 删除,元数据用 git worktree prune -v 清理。
限制:worktree remove 和分支删除等破坏性操作必须经用户确认;有未提交改动且未获明确批准不得强制删除;更新分支只用 --ff-only,失败即停止询问;不可仅凭 git rev-list 或 merge-base 推断已合并,因为 squash/rebase 合并会产生新 SHA;若无 forge CLI 可用,应将无法核实的分支视为高风险而非默认已合并。