分支分类
main/master 分支
作用:项目的主线分支,一般用于保存稳定且可发布的代码。
特点:
- 主分支必须保持稳定状态,随时可进行线上发布;
- 只有在功能完整或经过充分测试以后,才可合并至主分支;
规范:
- 主分支不允许直接 push,合并代码需要提交 MR / PR;
Develop 分支
作用:作为日常开发的主线,包含最新的开发代码。
特点:
- 所有功能分支最终合并到 develop,确保它是最新的开发版本;
- 通常不直接在 develop 上开发,而是创建功能分支;
规范:
- develop 分支不允许直接 push,合并代码需要提交 MR / PR;
Feature 分支
作用:用于开发新的功能或特性,独立于主分支或开发分支。
命名约定:feature#原始分支名#新增功能说明
如:feature#develop#新增定位功能,表示从 develop 分支拉出,要新增车辆定位功能。
特点:
- 从 develop 分支创建,开发完成后合并回 develop;
- 每个功能分支专注于一个特定功能,便于管理和测试;
Release 分支
作用:用于版本发布前的最后阶段,包含待发布的代码。
命名约定:release#version-日期
如:release#4.0-20241226,表示 2024 年 12 月 26 日发布的 4.0 版本。
特点:
- 从 develop 分支拉出,进入测试和修复阶段;
- 发布后合并到 main 和 develop,并打上版本标签;
- 确保发布过程中的小 bug 修复也能同步到 develop 分支;
Hotfix 分支
作用:修复线上紧急 bug。
命名约定:hotfix#原始分支名#修复 bug 说明
如:hotfix#main#修复定位丢失 bug,表示从 main 分支拉出,修复线上定位丢失的紧急 bug。
特点:
- 直接从 main / master 分支拉出;
- 修复完成后合并到 main 和 develop,保持两个分支同步;
- 修复完成后立即部署,保障线上稳定性;
Bugfix 分支
作用:用于修复开发过程中的非紧急 bug。
命名约定:bugfix#原始分支名#修复 bug 说明
如:bugfix#release#4.0-20241226#修复定位消失 bug,表示修复 release#4.0-20241226 分支的定位点消失的 bug。
特点:
- 从 develop 拉出,修复后合并回 develop;
- 不直接影响线上版本,属于开发过程中的常规修复;
Experimental 分支
作用:用于尝试新技术或实验性开发,不影响主线开发。
命名约定:experimental#原分支名#功能说明
如:experimental#develop#实验 AI 导航功能,表示从 develop 分支拉出,实验 AI 导航功能。
特点:
- 通常短期存在,用于探索或验证想法;
- 实验成功后可能合并到 feature 或 develop,失败则放弃;
Project 分支
作用:开发客户定制化需求。
命名约定:project#客户名称-日期#功能说明
如:project#阿里总监-20241226#优化AI算法,表示阿里总监20241126提出,需要优化AI算法的需求。