← 中文资源

简体中文版本

按日期阈值清理过期 git 分支

列出早于阈值的本地与远端分支,确认未关联开放 PR,先干跑再一次性删除。

阅读英文原文

列出、过滤、删除

列出每个分支及其最后提交日期,过滤出超过 60 天的,与开放 PR 交叉核对,删除其余。始终先干跑。

git for-each-ref --format="%(refname:short) %(committerdate:short)" refs/heads refs/remotes

与 PR 交叉核对

过期分支可能仍是某开放 PR 的 head。按 head ref 查询 PR API 并跳过匹配分支。被 tag 或 release 引用的分支同样不可删。

node tools/prune-branches.mjs --dry-run

预期结果

干跑打印每条删除命令,实跑执行并报告数量,关联开放 PR 或 tag 的分支不被删除。每月运行一次以保持分支列表可导航。删除具破坏性,远端分支需 force push 才能恢复,故默认干跑。