核心用法
post-merge-rename 是一个轻量级 Git 辅助工具,用于在分支合并后自动重命名源分支,而非直接删除。它扫描已合并到主分支的本地分支,提取合并日期,将分支名追加 --merged-YYYY-MM-DD 后缀后推送到远程,并清理旧分支名。
使用场景
- PR 合并后的分支归档
- 定期清理历史分支(作为
wip-release流程第 10 步自动执行) - 团队需保留分支历史但避免分支列表混乱的场景
命令示例
bash scripts/post-merge-rename.sh # 扫描并重命名所有已合并分支 bash scripts/post-merge-rename.sh --dry-run # 预览模式 bash scripts/post-merge-rename.sh <branch> # 重命名单个指定分支
显著优点
1. 历史可追溯:保留完整分支历史,满足审计与回滚需求
2. 误删防护:"永不删除,只重命名" 的保守策略
3. 自动化集成:内置 wip-release 工作流,降低手动操作成本
4. 零依赖开销:仅需 git 和 bash,无需额外运行时
潜在局限
- 仅支持
main作为合并目标分支的检测 - 重命名后分支列表仍会增长,长期或需额外归档策略
- 跨平台
bash兼容性在 Windows 环境需验证 - 无内置权限校验,依赖 Git 本身的推送权限
适合人群
- 采用 Git Flow 或类似分支模型的开发团队
- 需保留分支历史以满足合规要求的工程组织
- 追求自动化发布流程的 DevOps 实践者
常规风险
| 风险项 | 说明 |
|--------|------|
| 远程覆盖 | 强制推送可能覆盖他人未同步的分支 |
| 日期提取失败 | 非标准合并提交可能无法解析日期 |
| 命名冲突 | 已含 `--merged-` 的分支被跳过,但不会报错提示 |
| CI 触发 | 重命名后的推送可能意外触发持续集成流水线 |