核心用法
post-merge-rename 是一款专为 Git 工作流设计的分支管理工具,核心功能是在代码合并后自动重命名源分支,而非删除。通过扫描本地已合并到主分支(如 main)的分支,将其重命名为 原分支名--merged-YYYY-MM-DD 格式,实现历史可追溯且仓库整洁的双重目标。
使用方式灵活:可直接运行脚本批量处理所有已合并分支,添加 --dry-run 参数预览变更,或指定单个分支精准操作。该工具作为 wip-release 工作流的第 10 步自动执行,也可独立集成到 CI/CD 管道中。
显著优点
历史完整性保障:彻底杜绝分支误删风险,保留完整开发脉络,便于回溯代码演进过程与审计需求。
自动化零干预:无需手动判断哪些分支已合并,脚本自动识别合并日期并完成命名,减少人为疏漏。
非侵入式设计:仅操作已合并分支,跳过含 --merged- 标识的历史分支和当前活跃分支,安全性高。
轻量无依赖:仅需系统级 git 和 bash,无额外运行时或库依赖,适配绝大多数 Unix-like 环境。
潜在局限
- 平台限制:依赖 Bash 环境,Windows 原生支持需借助 WSL 或 Git Bash,纯 PowerShell 环境不适用。
- 远程同步风险:执行后会推送重命名分支并删除旧远程分支名,若团队协作中有人基于旧分支名操作,可能引发引用失效。
- 日期精度依赖:合并日期取自 Git 历史记录,若存在变基(rebase)或强制推送等改写历史操作,日期可能不准确。
- 无冲突处理机制:对重命名冲突(如目标名已存在)未明确说明处理策略,需人工介入。
适合人群
- 采用 Git Flow 或类似分支策略的开发团队
- 需要严格保留审计历史的金融、医疗等合规行业
- 频繁发布、追求自动化工作流的 DevOps 工程师
- 厌恶
git branch -D风险、偏好保守分支管理的开发者
常规风险
| 风险类型 | 说明 | 缓解建议 |
|---------|------|---------|
| 远程引用失效 | 旧分支名被删除后,团队成员本地可能残留过期引用 | 运行后通知团队执行 `git fetch --prune` |
| CI/CD 中断 | 若管道硬编码分支名,重命名后触发条件失效 | 采用通配符或标签触发,避免硬编码 |
| 误操作未合并分支 | 脚本逻辑理论上会跳过,但仍需 review `--dry-run` 输出 | 养成预览习惯,尤其多人协作仓库 |