finishing-branch

🔀 开发分支智能合并清理助手

社区开发的Git工作流自动化工具,提供测试验证、分支合并、PR创建与清理的一站式解决方案,确保代码安全集成。

收藏
8.7k
安装
2.9k
版本
v0.1.0
CLS 安全性认证2026-05-10
点击查看完整报告 >

使用说明

Finishing-branch 是一个专注于开发流程闭环管理的自动化技能,旨在帮助开发者在功能实现完成后,以标准化、安全化的方式处理代码集成与分支清理工作。该工具通过结构化的决策流程,将测试验证、分支操作和工作树管理整合为统一的解决方案,特别适用于遵循Git Flow或GitHub Flow的现代开发团队。

核心用法
该技能在检测到"finish branch"、"complete branch"等关键词时触发,执行五阶段工作流:首先强制验证测试状态(支持npm test、cargo test、pytest等主流框架),测试失败则立即中止;其次确定基础分支(main/master);随后呈现四种互斥选项——本地合并、创建Pull Request、保留分支或丢弃更改;根据用户选择执行相应的git操作(merge、push、gh pr create等);最后智能清理工作树(保留选项除外)。整个过程强调状态检查与确认机制,确保每一步都可控可回退。

显著优点
流程标准化是其最大价值,通过固化"测试-决策-执行-清理"的最佳实践,显著减少人为操作失误。安全设计尤为突出:内置main/master分支保护机制防止误操作生产分支;强制检查工作树状态,避免未提交更改意外丢失;删除操作采用 typed confirmation 机制,必须输入"discard"才执行强制删除;提供--dry-run模式用于预览操作。对Git工作树(worktree)的原生支持,使其在现代Git工作流中具备独特优势,能自动清理关联的工作目录。

潜在缺点与局限性
作为T3来源的社区项目,长期维护与代码审计频率不及企业级工具。功能上依赖系统git命令和特定测试框架的自动识别,在高度定制化的CI环境或非常规项目结构中可能需要手动调整。虽然使用了shell=True执行测试命令,但仅限于固定的模式匹配(make test/npm test等),灵活性受限。此外,该技能主要面向本地开发环境,与远程仓库的交互依赖gh CLI工具,环境依赖较重,未安装GitHub CLI的用户无法使用PR创建功能。

适合的目标群体
特别适合遵循Git Flow或GitHub Flow的个人开发者与中小团队,尤其是使用VS Code、Cursor等AI编辑器配合Git工作树的场景。对于需要频繁切换功能分支、重视本地测试验证、希望规范化PR流程的前后端开发者具有直接价值。也适用于教学场景,帮助新手建立标准的代码集成习惯,避免因误操作导致的主分支污染或代码丢失。

使用风险
主要风险集中在git操作本身:尽管有确认机制,但强制删除分支(-D)仍可能导致未推送工作丢失;自动工作树清理若配合选项1/2/4执行,可能误删仍在使用的目录;subprocess调用git命令虽无注入风险,但在环境变量异常或git配置错误时可能产生非预期行为。建议始终先使用--dry-run验证,并确保git config配置正确,特别是在处理重要生产代码时。

安全解读

核心用法

finishing-branch 是 Git 工作流自动化工具,用于开发完成后安全收尾分支。执行流程分为五步:

1. 强制测试验证 — 自动检测并运行 npm test/cargo test/pytest 等测试命令,失败即阻断
2. 基分支确认 — 自动识别分支从 mainmaster 切出点

3. 四选一决策 — 结构化呈现本地合并、创建PR、保留分支、废弃工作四种选项

4. 执行选定路径 — 自动处理 git mergegh pr create、分支删除、worktree 清理等操作

5. Worktree 清理 — 智能识别并移除 git worktree(与 git-worktrees skill 配套)

显著优点

  • 决策结构化:拒绝开放式提问,强制四选一,消除"接下来做什么"的决策疲劳
  • 安全守门员:测试失败绝对阻断,废弃操作需输入"discard"二次确认,防止误删
  • 多生态兼容:自动识别 Node.js、Rust、Python、Go 等项目的测试命令
  • Worktree 感知:完整支持 git worktree 工作流,自动清理或保留
  • 零第三方依赖:纯 Python 标准库实现,供应链攻击面极小

潜在局限

  • GitHub CLI 依赖:创建 PR 需预装 gh 工具,非 GitHub 平台需手动调整
  • 测试检测启发式:通过文件存在性推断测试命令,非常规项目可能识别失败
  • 无交互式冲突解决:复杂合并冲突仍需用户介入
  • Shell 执行风险subprocess.run(shell=True) 运行测试命令,虽输入可控但理论上存在注入可能

适合人群

  • 团队需要标准化 Git 工作流的开发者
  • 高频使用 feature branch 工作流的个人开发者
  • 结合 git worktree 进行多分支并行开发的进阶用户
  • 希望减少"收尾阶段"认知负担的工程师

常规风险

  • 数据丢失风险:废弃操作不可逆,虽有二次确认仍需用户谨慎
  • 权限风险:git 命令以当前用户权限执行,需确保无恶意 .git/config 篡改
  • Worktree 误删:自动清理逻辑依赖正确识别 worktree 路径,异常情况需手动检查

finishing-branch 内容

scripts文件夹
手动下载zip · 7.7 kB
cleanup_branches.pytext/plain
请选择文件