第4章 原型版本管理规范

适用场景

原型版本管理规范适用于以下关键节点:

  • 多轮迭代交付——原型在评审前经历多次修改,需清晰标识每次变更的版本基线。
  • 多人协作设计——多个设计师同时提交不同方案的 PR(Pull Request),需要统一分支命名和合并策略。
  • 评审回溯与追责——评审会中发现严重问题,需快速回退到上一个稳定版本并记录责任方。
  • 合规审计——客户或内部质量部门要求提供完整的版本变更历史与审批签字记录。
💡 讲师提示:版本管理不是“做完再补”的动作,而是在原型启动的第一天就应建立基线。建议在项目 Kick-off 时同步发布本规范文档。

前置条件

  • 已搭建好 Git 仓库(GitHub / GitLab / Bitbucket),并赋予团队相应权限。
  • 设计师已安装 Git 客户端或支持 Git 的协作工具(如 Abstract / Figma 版本历史插件)。
  • 团队已约定统一的版本号规则(语义化版本或简化版本),并写入项目 README。
  • 项目管理员已创建好 main、develop 以及 release/ 前缀的基准分支。

操作步骤

📐 流程总览:下图展示了原型版本管理的五个核心环节及其流转顺序。每个环节的详细规范见下方分步说明。
原型版本管理规范流程 版本号规则 主版本.次版本.修订号(MAJOR.MINOR.PATCH) 分支命名 feature/ · release/ · hotfix/ · main · develop 更新日志 标题 · 日期 · 版本号 · 变更类型 · 详细描述 审批记录表 版本号 · 审批人 · 日期 · 审批意见 · 签字 回退机制 git reset / git revert / 基线标签回退 版本管理规范贯穿原型全生命周期,确保可追溯、可回退、可审计。 五个环节形成闭环,缺一不可。

步骤1:版本号规则

原型版本采用语义化版本号(Semantic Versioning)的简化子集,格式为 MAJOR.MINOR.PATCH。每次评审会前必须冻结版本号,禁止在评审期间修改。

层级 名称 变更条件 示例
MAJOR 主版本 交互架构重构、核心流程变更、不兼容旧版 v2.0.0
MINOR 次版本 新增页面/功能模块、非破坏性变更 v1.3.0
PATCH 修订号 UI 样式调整、文案修正、间距/颜色微调 v1.0.2
⚠️ 避坑提醒:原型评审前如果未冻结版本号,会出现“评审时还在修改”的混乱局面。建议评审会前 24 小时锁定版本,并将锁定后的版本号写入评审通知。

步骤2:分支命名

所有原型设计文件必须基于 develop 分支创建功能分支,命名格式如下:

分支类型 命名格式 用途
主分支 main 仅存放通过评审的正式版本,禁止直接推送
开发分支 develop 日常集成分支,所有功能分支合并的目标
功能分支 feature/<JIRA-ID>-<简短描述> 单个原子功能的开发,如 feature/PRJ-123-login-redesign
发布分支 release/<版本号> 评审会前从 develop 切出,只做 bugfix,不再加新功能
热修复分支 hotfix/<版本号>-<描述> 从 main 切出,紧急修复评审中发现的阻塞性问题

步骤3:更新日志

每次提交或合并时,必须按以下模板记录 CHANGELOG.md:

# 原型更新日志

## [v2.1.0] - 2026-03-20

### 新增
- 用户个人中心页面(PRD-88)
- 夜间模式切换开关

### 修改
- 首页卡片布局由 4 列调整为 3 列(评审反馈 #23)
- 按钮圆角从 4px 改为 8px

### 修复
- iOS 设备上列表滚动卡顿问题
- 空状态文案显示不全

### 废弃
- 旧版引导页(将随 v3.0 移除)

每个版本必须包含:标题、日期、版本号、变更类型(新增/修改/修复/废弃)以及详细描述。推荐关联需求编号或评审反馈编号。

步骤4:审批记录表

每次评审会结束后,必须填写《原型版本审批记录表》,作为版本可追溯的书面证据。表格格式如下:

字段 说明 填写要求
版本号 本次评审的版本标识 必须与 CHANGELOG 中的版本号一致
审批人 参与评审的产品/技术负责人 至少 2 人签字
审批日期 评审会实际召开日期 格式 YYYY-MM-DD
审批意见 通过 / 有条件通过 / 驳回 若为“有条件通过”,须列出待修改事项清单
签名 手写签名或电子签名 不可使用打印字体代替
📎 交付模板:项目启动时应在 docs/ 目录下预置空白审批记录表模板(.docx / .xlsx),避免评审会现场临时拼凑。

步骤5:回退机制

当评审会发现问题需要回退时,按以下优先级执行:

  1. 基线标签回退——如果版本已打 tag(如 v2.1.0),直接 git checkout v2.1.0 并基于该 tag 创建修复分支。
  2. git revert——如果问题仅涉及最近 1~2 次提交,使用 git revert <commit-hash> 生成一个反向提交,保留历史。
  3. git reset——仅限本地或未推送的分支使用,严禁对已推送的 main / release 分支执行 git reset --hard。
# 推荐回退流程(安全操作)
git checkout release/v2.1.0
git log --oneline -5                  # 确认要回退的提交
git revert HEAD~2..HEAD              # 回退最近 2 个提交
git commit -m "revert: 回退 v2.1.0 中的样式修改(评审问题 #34)"
git push origin release/v2.1.0
⚠️ 纪律红线:评审会期间禁止任何人直接修改 main 分支或强制推送。所有回退操作必须在 release/ 或 hotfix/ 分支上执行,并经过至少 1 人代码审查。

输入输出物

环节 输入物 输出物
版本号规则 项目需求文档、原型设计初稿 VERSION 文件或 README 中的版本号声明
分支命名 项目仓库、需求 JIRA 卡片 符合规范的分支列表(git branch)
更新日志 Git 提交记录、评审反馈列表 CHANGELOG.md 文件
审批记录表 评审会签到表、问题清单 已签字的审批记录表(PDF 扫描件)
回退机制 问题描述、目标版本号 回退后的新版本 tag + 更新后的 CHANGELOG

责任边界

  • 设计负责人:保证分支命名和版本号规则在团队内落地,检查 CHANGELOG 是否完整。
  • 技术负责人:维护 Git 仓库分支权限,执行或审核回退操作。
  • 产品经理:在评审会上确认版本号是否正确,并在审批记录表上签字。
  • 质量工程师:审计版本管理流程是否合规,抽查审批记录表与 CHANGELOG 的一致性。

记录材料

每次评审会结束后需归档以下材料至项目 docs/releases/ 目录:

  • CHANGELOG.md —— 最新版本的历史变更记录。
  • approval-record-v{版本号}.pdf —— 当前版本的审批记录表扫描件。
  • release-notes-v{版本号}.md —— 面向客户的发布说明(可选)。

异常处理

异常场景 处理措施 责任方
版本号冲突(两个分支使用了相同版本号) 以先合并到 develop 的分支为准,后合并者递增 PATCH 号 设计负责人
分支命名不符合规范 拒绝合并请求,要求创建者重命名分支后重新提交 PR 技术负责人
评审会未填写审批记录表 该版本不允许合并到 main,补齐记录表后方可合并 产品经理
回退后发现丢失了后续修复 使用 git cherry-pick 将修复提交应用到回退后的分支 技术负责人
CHANGELOG 未及时更新 在 PR 描述中添加“CHANGELOG 更新”勾选框,CI 检查通过后才允许合并 质量工程师

验收标准

满足以下所有条件,方可认为版本管理规范已落地执行:

  • ✅ 仓库中可查到 VERSION 或 README 中显式声明了版本号规则。
  • ✅ 所有功能分支均按 feature/<ID>-<描述> 格式命名,无脏分支。
  • ✅ CHANGELOG.md 包含最近 3 个版本的完整记录,且格式与模板一致。
  • ✅ 本次评审对应的审批记录表已签字归档,版本号与 CHANGELOG 一致。
  • ✅ 回退操作有对应的 Git 提交记录和 CHANGELOG 条目,且未破坏 main 分支历史。
🏁 章节检查点:请确认你的项目仓库中已经包含了 VERSION 文件、CHANGELOG.md 以及空白审批记录表模板。如果缺少任何一项,请在本周内补充完毕,否则将影响下一次评审会的版本基线冻结。