Post Merge Rename

🏷️ 分支归档永不删,历史完整可追溯

自动将已合并分支重命名为 `--merged-YYYY-MM-DD` 格式,保留完整 Git 历史记录,永不删除分支。

收藏
3.6k
安装
1.3k
版本
1.9.63
CLS 安全扫描中
预计需要 3 分钟...

使用说明

核心用法

post-merge-rename 是一个 Git 工作流工具,用于在 PR 合并后自动重命名源分支。通过在原分支名后追加 --merged-YYYY-MM-DD 时间戳,实现"归档式清理"而非物理删除,确保完整历史可追溯。

使用方式

bash scripts/post-merge-rename.sh              # 扫描并重命名所有已合并分支
bash scripts/post-merge-rename.sh --dry-run    # 仅预览,不执行
bash scripts/post-merge-rename.sh <branch>     # 重命名单个指定分支

工作流程

1. 列出所有已合并到 main 的本地分支
2. 跳过已重命名分支(含 --merged- 标识)

3. 从 Git 历史提取合并日期

4. 执行重命名:feature-branchfeature-branch--merged-2026-03-09

5. 推送重命名后的分支到 origin

6. 删除 origin 上的旧分支名

显著优点

  • 历史零丢失:物理保留分支,仅变更名称,所有提交记录、评论、关联的 CI/CD 日志完整保留
  • 可追溯性增强:时间戳明确标记合并时间点,便于后期审计与回滚
  • 安全设计--dry-run 预览模式、自动跳过已处理分支,避免误操作
  • 自动化集成:作为 wip-release 流程第 10 步自动执行
  • 团队协作友好:远程仓库同步更新,团队成员可识别已归档分支

潜在缺点与局限性

  • 命名污染:长期积累可能导致分支列表臃肿,需配合定期清理策略
  • Git 命令依赖:依赖 gitbash 环境,Windows 原生环境需 WSL 或 Git Bash
  • 权限要求:需要 origin 的写权限以推送重命名分支和删除旧引用
  • 日期准确性:合并日期提取依赖本地 Git 历史,若历史被篡改(rebase/force-push)可能不准确
  • 分支名冲突:若原分支名已含 --merged- 子串可能触发意外跳过

适合人群

  • 采用 Git Flow 或类似分支策略的研发团队
  • 对审计合规、历史追溯有要求的金融、医疗等行业
  • 追求"永不删除"安全哲学的保守型运维团队
  • 使用 wip-release 自动化发布流程的 WIP 工具链用户

常规风险

  • 误删远程分支:脚本第 6 步会删除 origin 旧分支名,若权限配置错误或网络中断可能导致意外状态
  • 命名覆盖:极端情况下若两个分支在同一天合并且原名称相似,重命名后可能产生混淆
  • 自动化副作用:作为 wip-release 第 10 步自动运行时,用户可能未察觉分支已被重命名,后续本地引用需手动更新

Post Merge Rename 内容

手动下载zip · 3.2 kB
package.jsonapplication/json
请选择文件