一、版本管理规范概述
- 目的:规范代码分支管理和版本发布流程,提高团队协作效率,确保代码质量和版本可追溯性。
- 适用范围:基于 Gitee 平台开发的所有项目。
- 分支策略:采用 Git Flow 模型的变体,主要分支包括 master、dev、sit、uat,辅助分支包括 feature、bugfix、release。
二、主要分支说明
- master 分支
- 作为主分支,永远代表生产环境代码。
- 该分支代码必须是经过充分测试且无明显缺陷的稳定版本。
- 禁止直接在 master 分支上进行开发,所有更新都需通过合并其他分支(如 release 或 hotfix)完成。
- 每次提交到 master 分支都应对应一个正式版本号,并打 Tag 标记。
- dev 分支
- 作为开发主分支,集中了所有待发布版本的新功能和改进。
- 开发人员在各自的 feature 分支上进行开发,完成后合并到 dev 分支。
- 每日构建基于 dev 分支进行,确保新功能的集成测试。
- sit 分支
- 用于系统集成测试(System Integration Testing)的分支。
- 从 dev 分支创建,当需要进行系统集成测试时,将 dev 分支上的代码合并到 sit 分支。
- 测试过程中发现的问题在 dev 分支修复后,再次合并到 sit 分支进行回归测试。
- uat 分支
- 用于用户验收测试(User Acceptance Testing)的分支。
- 从 sit 分支创建,当系统集成测试通过后,将 sit 分支上的代码合并到 uat 分支。
- 供最终用户进行验收测试,确保系统符合业务需求。
三、辅助分支说明
- feature 分支
- 用于开发新功能或改进现有功能。
- 命名规则:feature/[功能名称],例如 feature/user-login。
- 基于 dev 分支创建,开发完成后合并回 dev 分支。
- 功能开发完成后,应及时删除该分支。
- bugfix 分支
- 用于修复测试过程中发现的缺陷。
- 命名规则:bugfix/[缺陷编号],例如 bugfix/1001。
- 基于 dev 分支创建,修复完成后合并回 dev 分支和 sit 分支(如果需要)。
- 缺陷修复后,应及时删除该分支。
- release 分支
- 用于准备新版本的发布。
- 命名规则:release/[版本号],例如 release/v1.0.0。
- 基于 dev 分支创建,创建后不再添加新功能,只进行 Bug 修复、文档更新等与发布相关的工作。
- 发布完成后,合并到 master 和 dev 分支,并在 master 分支上打 Tag。
四、版本号规则
- 版本号格式:主版本号。次版本号。修订号,例如 v1.0.0。
- 版本号升级规则
- 主版本号:当有不兼容的 API 变更,或有重大功能更新时升级。
- 次版本号:当有向下兼容的新功能添加时升级。
- 修订号:当有向下兼容的问题修复时升级。
- 预发布版本:可以使用版本号后加 - beta、-rc 等后缀表示预发布版本,例如 v1.0.0-beta。
五、开发流程
- 新功能开发流程
- 从 dev 分支创建 feature 分支。
- 在 feature 分支上进行开发。
- 开发完成后,提交 Pull Request 到 dev 分支。
- 经过代码审查和自动化测试后,合并到 dev 分支。
- 删除 feature 分支。
- 缺陷修复流程
- 从 dev 分支创建 bugfix 分支。
- 在 bugfix 分支上修复缺陷。
- 修复完成后,提交 Pull Request 到 dev 分支和 sit 分支(如果需要)。
- 经过代码审查和测试后,合并到相应分支。
- 删除 bugfix 分支。
- 版本发布流程
- 当 dev 分支上的功能足够稳定时,从 dev 分支创建 release 分支。
- 在 release 分支上进行最后的测试和 Bug 修复。
- 更新版本号和发布说明。
- 测试通过后,将 release 分支合并到 master 和 dev 分支。
- 在 master 分支上打 Tag 标记版本号。
- 删除 release 分支。
- 紧急修复流程
- 从 master 分支创建 hotfix 分支。
- 在 hotfix 分支上进行紧急修复。
- 修复完成后,提交 Pull Request 到 master 和 dev 分支。
- 经过代码审查和测试后,合并到相应分支。
- 在 master 分支上打新的 Tag 标记版本号。
- 删除 hotfix 分支。
六、Gitee 平台使用规范
- 提交规范
- 提交信息应清晰、简洁地描述本次提交的内容。
- 遵循 "[类型] 描述" 的格式,例如 "[FEATURE] 添加用户登录功能"、"[FIX] 修复用户注册验证问题"。
- 类型可以是 FEATURE(新功能)、FIX(修复缺陷)、REFACTOR(代码重构)、DOC(文档更新)等。
- Pull Request 规范
- 每个 Pull Request 应只包含一个明确的功能或修复。
- 提交 Pull Request 时,应填写详细的描述信息,说明本次变更的目的和内容。
- 应至少有一名其他开发人员进行代码审查,审查通过后方可合并。
- 合并前应确保所有自动化测试都已通过。
- Tag 管理
- 在 master 分支上的每个正式版本都应打 Tag。
- Tag 名称应与版本号一致,例如 v1.0.0。
- 打 Tag 时应添加描述信息,说明该版本的主要更新内容。
七、自动化测试与持续集成
- 自动化测试
- 每个 Pull Request 都应触发自动化测试,包括单元测试、集成测试等。
- 只有当所有测试都通过后,Pull Request 才能被合并。
- 持续集成
- 配置 Gitee 的持续集成服务,实现代码提交后的自动化构建和测试。
- 确保 dev、sit、uat 和 master 分支的代码都能自动构建和测试。
八、附则
- 本规范自发布之日起生效,由项目管理团队负责解释和修订。
- 团队成员应严格遵守本规范,如有特殊情况需要偏离规范,需经项目负责人批准。