第4章 原型版本管理规范
适用场景
原型版本管理规范适用于以下关键节点:
- 多轮迭代交付——原型在评审前经历多次修改,需清晰标识每次变更的版本基线。
- 多人协作设计——多个设计师同时提交不同方案的 PR(Pull Request),需要统一分支命名和合并策略。
- 评审回溯与追责——评审会中发现严重问题,需快速回退到上一个稳定版本并记录责任方。
- 合规审计——客户或内部质量部门要求提供完整的版本变更历史与审批签字记录。
💡 讲师提示:版本管理不是“做完再补”的动作,而是在原型启动的第一天就应建立基线。建议在项目 Kick-off 时同步发布本规范文档。
前置条件
- 已搭建好 Git 仓库(GitHub / GitLab / Bitbucket),并赋予团队相应权限。
- 设计师已安装 Git 客户端或支持 Git 的协作工具(如 Abstract / Figma 版本历史插件)。
- 团队已约定统一的版本号规则(语义化版本或简化版本),并写入项目 README。
- 项目管理员已创建好
main、develop以及release/前缀的基准分支。
操作步骤
📐 流程总览:下图展示了原型版本管理的五个核心环节及其流转顺序。每个环节的详细规范见下方分步说明。
步骤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:回退机制
当评审会发现问题需要回退时,按以下优先级执行:
- 基线标签回退——如果版本已打 tag(如
v2.1.0),直接git checkout v2.1.0并基于该 tag 创建修复分支。 - git revert——如果问题仅涉及最近 1~2 次提交,使用
git revert <commit-hash>生成一个反向提交,保留历史。 - 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 以及空白审批记录表模板。如果缺少任何一项,请在本周内补充完毕,否则将影响下一次评审会的版本基线冻结。