找出已合并或已废弃的 git 分支并安全删除
30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/21 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add ramwin/dsh-branch-cleaner该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
dsh 原生插件 · dev
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 11 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/1(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-tools给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(162 字)↓
冗余分支清理插件 (Branch cleaner for DeepSeek Harness): 找出已合并/已 squash 合并/已 rebase 落地/上游已删/PR 已合并的 git 分支, 默认只报告, 删除前自动备份. Detect and delete stale merged branches in DSH.
README
由 DeepSeek 最新模型翻译生成dsh-branch-cleaner
清理 已经落地到主线 的 git 分支:默认只报告,删前自动备份。
一个 DeepSeek Harness 插件,找出那些工作成果已经落地到主线的分支——merge、squash merge、补丁等价(rebase/cherry-pick)、上游已删除、PR 已合并——然后安全地删掉它们。
为什么需要它
git branch --merged 只认祖先合并。用 squash merge 或者 rebase 落地的分支,它永远认不出来,于是本地几十个、远程上百个分支越积越多。这个插件把几种「其实已经落地」的情况都判出来:
| 落地方式 | --merged 认得出吗 | 插件用的判定 |
| merge / fast-forward | 认 | git merge-base --is-ancestor |
| squash merge | 不认 | git merge-tree --write-tree:把分支合回主线,主线内容一点不变 → 已落地 |
| rebase / cherry-pick | 不认 | git cherry:没有 + 开头的行 → 补丁全在主线 |
| PR 已合并 | 看落地方式 | gh pr list --head <branch> --state merged(可选) |
展开完整文档(README 剩余 1 节)
dsh-branch-cleaner 清理 已经落地到主线 的 git 分支:默认只报告,删前自动备份。 一个 DeepSeek Harness 插件,找出那些工作成果已经落地到主线的分支——merge、squash merge、补丁等价(rebase/cherry-pick)、上游已删除、PR 已合并——然后安全地删掉它们。 为什么需要它 git branch --merged 只认祖先合并。用 squash merge 或者 rebase 落地的分支,它永远认不出来,于是本地几十个、远程上百个分支越积越多。这个插件把几种「其实已经落地」的情况都判出来: | 落地方式 | --merged 认得出吗 | 插件用的判定 | | merge / fast-forward | 认 | git merge-base --is-ancestor | | squash merge | 不认 | git merge-tree --write-tree:把分支合回主线,主线内容一点不变 → 已落地 | | rebase / cherry-pick | 不认 | git cherry:没有 + 开头的行 → 补丁全在主线 | | PR 已合并 | 看落地方式 | gh pr list --head <branch> --state merged(可选) | | 上游分支已删 | 不认 | %(upstream:track) 里的 [gone] | 安装 npm dsh plugin --profile web add dsh-branch-cleaner 或从 GitHub 装(跟随 main,永远最新) dsh plugin --profile web add github:ramwin/dsh-branch-cleaner 本地开发 dsh plugin --profile web add /path/to/dsh-branch-cleaner 装完重开 dsh web(或刷新页面),模型就多了 git_clean_branches 工具。 用法 直接在对话里说: 看看这个仓有哪些分支已经合过了,能删的列出来 把已经合并的分支删掉,保留 develop 和 release/* 模型会先 mode=report 列一遍,你确认后才用 mode=delete。也可以明确要求一步到位。 工具参数 | 参数 | 类型 | 说明 | | mode | report / delete | 默认 report,只列出不删除;只有 delete 才真删 | | repo | string | 仓库路径,默认当前会话工作目录,相对路径按它解析 | | base | string | 对比基线,默认 origin/HEAD → main/master → 当前分支 | | squash | boolean | 识别 squash 合并 | | patches | boolean | 识别 rebase / cherry-pick 落地 | | gone | boolean | 识别上游已删除的分支 | | pr | boolean | 用 gh 识别已合并的 PR | | all | boolean | = squash + patches + gone + prune(不含 remote) | | remote | boolean | 连 origin 上的已合并远程分支一起清(要单独加,all 不含它) | | prune | boolean | 先 git fetch --prune 刷新 [gone] | | age | integer | 只处理 tip 提交早于 N 天的分支 | | keep | string[] | 额外保护的 glob,如 wip/(默认已保护 main/master/develop/release/ 等) | | recurseSubmodules | boolean | 对每个已初始化子模块各跑一遍(只做本地清理,不带 prune/remote) | | timeoutMs | integer | 协作式超时,默认 180000 | 安全性 - 默认只报告:mode=report 一个分支都不动,连 git checkout 都不执行。 - 绝不 rebase、绝不切分支、绝不碰工作区:只跑只读的判定命令 + git branch -d/-D。 - 永不动的分支:基线本身、当前检出的、任何 worktree 里检出的、命中保留规则(main master develop trunk release/* hotfix/* gh-pages backup/* dependabot/)的。 - 删前备份:每个被删分支的 SHA 记到 refs/backup/branch-cleaner/<时间戳>/<分支名>,恢复: git for-each-ref refs/backup/branch-cleaner/ # 看备份 git branch feat/x $(git rev-parse refs/backup/branch-cleaner/20260101-120000/feat/x) - squash 判定不会误杀:它问的是「把这个分支合回去,主线会不会变」——会变就不删。 输出 branches / remoteBranches 里每行都带 repo 字段(. 表示顶层仓库,其余是相对路径), deleted / failed 是整棵子模块树的合计。递归时只列可删分支,未合并的会折成一句「其余 N 个已略过」。 和脚本的关系 插件的 assets/delete_redundant_branch.sh 是 linux-reference 里同一份脚本的副本(唯一事实来源在那边,判定逻辑、回归测试都在那儿)。插件只负责:把参数翻译成 argv → 在会话工作目录跑脚本 → 解析 JSON → 渲染给模型。 同步: scripts/sync-from-linux-reference.sh 开发 node --test test/ # 10 个用例:参数翻译 / JSON 解析 / 真实仓库 report 与 delete node scripts/mount-check.mjs # 挂进真 ToolRuntime, 跑一次 report + delete mount-check 依赖上层目录里已安装的 @deepseek-ai/(也就是本机装了 dsh 才行)。 License MIT © Xiang Wang
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ramwin/dsh-branch-cleaner
找出已合并或已废弃的 git 分支并安全删除
相关插件 · 开发 / 工程
隐私简历生成器reactive-resume/reactive-resume
Reactive Resume 已迁至 GitHub 上的…
★ 45,125已汉化MCP
71.7
AI 架构文档生成器sopaco/deepwiki-rs
🚀 Litho 已进化为 Terrain —— 给你的 AI 智能体一张会呼吸的代码库地图。
★ 3,157已汉化DSH
70.8
长时任务执行闭环AMAP-ML/LongHorizon-Harness
面向 Computer-Use Agent 的 Loop Engineering
★ 1,764已汉化DSH
70.5
AI 编程纪律方法包GanyuanRan/Aegis
让 AI 编程 agent 变得可信:少返工、更安全、说“完成”前先给证据。
★ 1,384已汉化DSH
69.6
多代理编排运行时Enderfga/claw-orchestrator
面向编程智能体的运行时。把 Claude Code、Codex、Antigravity、Grok…
★ 586已汉化MCP
69.4
记忆进化插件csyangwen/dsh-memory-evolve
dsh-memory-evolve 使用场景指南
★ 461已汉化DSH
67.9