中心基本规范:https://doc.gz.cvte.cn/git
研发部门规范:00_Git协同开发规范
一、分支管理
1.分支说明
- feat:功能开发分支
- 粒度:专项、小专项、单个零散任务、可一起上线的几个零散任务
- 命名:专项用中心立项的编号命名;单个零散任务用jira story编号命名;小专项/可一起上线的几个零散任务用jira epic/story编号命名,尽量用可囊括全部功能点的。如 feat/plm-1234
- 开始开发时从最新的master分支checkout,push到远端,到功能上线后需删除远端的分支
- 功能开发完成后合并到dev分支发布测试环境进行测试
- 每周二前确认feat分支是否要在周三上线,如确认上线,则合并进sprint分支
- feat分支的提交仅需包含当前feat对应的功能/专项所需的提交
- 每月定时检查远端的feat分支,检查是否有做了的功能一直没发布的
- feat分支可以rebase master分支,但禁止rebase test分支
- 当两个并行开发的feature分支有代码依赖时,可以把依赖的代码cherry pick或者merge过来,若选择merge,则被依赖的分支要先上线,或者两个feature分支的功能一起上线
- fix: 修复缺陷分支
- 非紧急上线的情况。开发完成后合并dev分支测试,然后同feat分支一起合并到sprint分支中等待周三发布
- dev:测试分支,最全的代码,对应测试环境,功能开发完成后合并到test分支进行部署测试
- sprint: 每周发布正式的预合并分支
- 命名:sprint/plm-21-6-12,以jira的sprint名称命名
- 每周三发布正式后删除对应sprint分支
- feat分支确认发布正式后合并到sprint分支,周三发布时直接使用sprint分支合并到uat和prod
- uat:预发布分支,测试环境测试通过的代码,对应UAT环境
- prod:主干分支,测试和UAT均验证通过的代码,对应生产环境,在Gitlab开启Protected Branches。不允许直接提交代码,只从sprint分支合并过来
- master:主干分支,prod分支验证通过的代码。在发布正式环境后的第二天,从prod分支合并到master中,并打tag记录
- hotfix:缺陷分支,用于修复线上bug并紧急上线
- 命名:hotfix/plm-5678,命名可以是jira任务编号或者bug描述
- chore:杂项分支。无jira任务的系统改动及优化可使用此分支,可直接以描述命名
二、提交规范(commit信息)
1.格式
动作, JIRA任务编号, 描述
2.动作
- feat:新增功能
- modify:修改
- delete:删除
- fix:Bug修复
- refactor:代码重构
- chore:杂项
3.示例
feat: plm-1234, 自动合成描述
三、简单示例
1.新建feat分支
按JIRA上的task编号或者story编号命名,分支命名示例:plm-3130 (或plm-3130-xxx)
开发人员可以在gitlab上新建远程分支,也可以在本地新建再push远程
2.开发、提交、合并到dev分支、测试
开发人员完成
3.开发人员将feat分支提MR合并到sprint分支
前提:分支功能已测试通过,已确认该分支功能需要发布
4.项目代码负责人review代码,审批MR
5.sprint分支合并到uat分支,UAT环境验证
项目代码负责人完成
6.sprint分支合并到prod分支,发布
项目代码负责人完成
6.prod分支合并到master分支,打tag
上线第二天确认正式环境没有问题后,将prod分支合并进master分支,并打tag
四、LTC项目git工作流
LTC2.0开发过程中,为了尽可能复用代码,减少代码冲突,使用如下工作流。
作者:朱黔杨 创建时间:2023-04-19 14:25
最后编辑:寇永威 更新时间:2023-11-21 15:32
最后编辑:寇永威 更新时间:2023-11-21 15:32