核心用法
post-merge-rename 是一个轻量级 Git 辅助工具,用于在分支合并后自动重命名源分支而非删除,从而完整保留开发历史。执行时会扫描本地已合并到 main 的分支,跳过已标记 --merged- 的分支,从 Git 历史中提取实际合并日期,将 feature-branch 重命名为 feature-branch--merged-YYYY-MM-DD,并同步更新远程仓库。
显著优点
- 零数据丢失:相比删除分支,重命名策略确保任何关联的 CI/CD 记录、部署标签、代码审查历史都可追溯
- 自动化集成:作为
wip-release流水线第 10 步自动执行,减少人工操作 - 确定性命名:基于真实合并日期的时间戳,避免命名冲突
- dry-run 预览:支持
--dry-run模式,安全验证变更范围
潜在缺点与局限性
- 远程仓库污染:长期积累大量
--merged-后缀分支可能导致远程分支列表臃肿 - 权限依赖:需要远程仓库写权限执行推送和旧分支删除操作
- 命名硬编码:
--merged-前缀和日期格式不可配置,可能与团队现有规范冲突 - Bash 依赖:Windows 环境需 WSL 或 Git Bash,原生 CMD/PowerShell 不支持
适合人群
- 采用 Git Flow 或类似分支策略的中大型开发团队
- 需要审计合规、禁止删除分支的金融/医疗行业 DevOps 工程师
- 使用
wip-ai-devops-toolbox工具链的开发者
常规风险
| 风险类型 | 说明 | 缓解措施 |
|---------|------|---------|
| 误重命名活跃分支 | 工具会跳过含 `--merged-` 的分支,但可能误判 | 执行前使用 `--dry-run` 验证 |
| 远程推送失败 | 网络中断或权限不足导致状态不一致 | 具备幂等性,可重复执行 |
| 日期解析错误 | 非常规合并提交可能导致日期提取失败 | 依赖标准 Git merge commit 格式 |
| 脚本注入 | 分支名含特殊字符可能引发 Shell 注入 | 输入未完全转义,建议限制分支命名规范 |