当前位置: 首页 > news >正文

高效分支管理规范

一、目的

通过标准化的流程和最佳实践,确保代码组织清晰、版本控制高效、变更管理有序,从而提高软件开发的质量、效率和可维护性,支持团队协作和持续集成/持续部署流程,最终实现项目的长期成功和发展

二、分支命名规范

  • 简洁明了:使用英文小写字母和下划线,避免使用特殊字符。

  • 易于识别:通过命名能够快速识别分支的用途和所属项目。

  • 统一规范:确保所有团队成员遵循相同的命名规则。

分支名称分支命名功能介绍约束对应环境
主干分支master用于线上部署的稳定代码只接受合并请求,每次发布打上Tag标签生产环境
开发分支dev用于整合开发成员的代码的主干分支,从master分支创建开发环境
发布分支release/xxx用于发布新版本的分支,xxx为版本号,从develop分支创建,最终合并回maste分支只接受合并请求测试/UAT/生产环境
修复分支hotfix/xxx用于修复线上紧急bug的分支,xxx为版本号,从master分支创建并合并回master和develop分支。测试环境
修复分支fix/xxx用于修复转测的bug。从release/xxx创建,xxx为迭代编号+转测编号,如fix/1.6就是迭代1第6次转测,最终合并到release/xxx和dev分支开发环境,测试环境

三、分支的使用和管理规范

1、源码仓库初始化

当接收到正常的业务需求时,项目经理/开发主管根据架构设计在gitlib上创建初始版项目,全英文小写,中间用_作为连接符:

  • 后端代码以_service后缀

  • 前端代码以_web后缀

  • 移动端代码以_app后缀

创建分支,项目创建为master分支为主干分支,基于master创建dev分支,基于dev创建release分支(如果版本没确定可以放到转测时创建),设置三分支均为受保护分支,且master/release分支只有Maintainer角色可以合并。

注:Maintainer角色只能授予PM、测试组长、技术组长

2、新功能开发流程

  1. 新的迭代开始,所有开发人员从主干dev拉个人分支开发特性, 分支命名规范 feature-name(根据项目实际情况可以省略特分支,此分支就是个人远程仓库,防止直接合入开发分支,通过提交merge的方式,只有代码检视通过才能合入,提升代码库质量)--这里可以增加自动代码审查。

  2. 开发完成后,通过自测,本地代码质量扫描合入dev分支

  3. 将本次迭代转测所有代码部署到dev环境,完成集成测试,并通过代码质量检查

  4. 基于dev拉取要发布的分支,release/xxx(如果创建好则跳过),将这个分支部署到测试环境进行测试

  5. 验收测试通过后,基于release/xxx发布版本。

  6. 待版本发布稳定后,将release/xxx同步到master,同时在 Master 分支上打个 Tag 记住 release 版本号,然后可以删release/$version

3、修复线上Bug(hotfix分支)

  1. master 分支某个 tag 上创建一个 hotfix 分支(热修复分支),一般是最新的 tag 应该和当前生产环境对应

  2. 开发人员完成Bug 修复,提交 hotfix 分支到测试环境验收通过

  3. 基于hotfix分支发布版本

  4. 待版本发布稳定后,将 hotfix 分支合并到dev与master 分支,同时在 master 分支上打个 Tag 记住 hotfix 版本号

  5. 删除 hotfix 分支

4、测试Bug修复流程

  1. 基于release/xxx分支创建fix/xxx的修复分支;

  2. 在fix/xxx的修复分支在开发环境自测通过,通知测试部署到测试环境验证;

  3. 测试验证通过,研发将fix/xxx分支代码同步到release/xxx与dev分支,同时删除fix/xxx分支;

四、提交内容规范

Git 每次提交代码,都要写 Commit message(提交说明),否则就不允许提交。但是,一般来说,commit message 应该清晰明了,说明本次提交的目的。提交规范设置为:" type:subject "

type

用于说明 commit 的类别,只允许使用下面7个标识。

  • feat:新功能(feature)

  • fix:修补bug

  • docs: 仅文档更改

  • style:格式(不影响代码运行的变动)

  • refactor:重构(即不是新增功能,也不是修改bug的代码变动)

  • revert:回滚到上一个版本

  • test:增加测试

subject

subject 是 commit 类型的简短描述,建议不超过50个字。

五、提交分支规范

  • 禁止向主分支直接提交代码,包括代码仓库在线编辑修改;

  • 禁止提交测试性代码到任何主分支源码(src)目录,测试代码只能存在于测试(test)目录;

  • 禁止任何工作分支跨主分支提交代码,工作分支从只能合并到与工作分支同源的主分支;

  • 必须备注每一次提交,代码备注必须简要可读。准确的描述具备可检索性;

  • 必须备注每一次合并请求,对合并请求包含的功能点简要描述。准确的描述具备可检索性。

  • 必须每次提交之前本地完成代码质量扫描;

  • 必须完成代码质量扫描才能合入release/xxx分支;

六、分支的删除规范

  1. 修复分支:

– hotfix/xxx 合并到master与dev分支可以删除,fig/xxx合并到dev和release/xxx 可以删除。

  1. 发布分支:

– release/xxx合并到master后可以产出。

  1. 注意事项:

– 删除分支前,确保该分支的代码已经合并回了相应的主分支,并且不再需要保留。

七、其他注意事项

  • 定期进行分支清理,避免分支过多导致管理混乱。

  • 团队成员应定期培训和交流,确保对分支管理规范有深入理解和遵循。

  • 遵循敏捷开发原则,灵活调整分支管理策略以适应项目需求变化。

http://www.lryc.cn/news/485961.html

相关文章:

  • 跟我学C++中级篇——RAII
  • C语言第九周课——经典算法
  • 【Pikachu】XML外部实体注入实战
  • vue2项目中在线预览csv文件
  • 基于VUE实现语音通话:边录边转发送语言消息、 播放pcm 音频
  • PMP--一、二、三模、冲刺--分类--变更--技巧--特点
  • CSS Grid 布局实战:从入门到精通
  • git创建远程仓库,以gitee码云为例GitHub同理
  • Java爬虫(HttpURLConnection)详解
  • 基于STM32的智能停车管理系统设计
  • 【循环神经网络】
  • 优选算法 - 4 ( 链表 哈希表 字符串 9000 字详解 )
  • CTF-RE 从0到N: windows反调试-获取Process Environment Block(PEB)信息来检测调试
  • STM32开发基础阶段复习
  • 搜维尔科技:SenseGlove触觉反馈手套开箱+场景测试
  • 在k8s上部署Crunchy Postgres for Kubernetes
  • 大模型(LLMs)进阶篇
  • 近几年新笔记本重装系统方法及一些注意事项
  • 小程序19-微信小程序的样式和组件介绍
  • Chrome 浏览器开启打印模式
  • Git回到某个分支的某次提交
  • [前端面试]javascript
  • 对象的初步认识
  • layui 输入框带清空图标、分词搜索、关键词高亮
  • Vue 3 + TypeScript: 类型安全的前端开发实践
  • Python爬虫知识体系-----requests-----持续更新
  • Swift的可选绑定(Optional binding)
  • 硬石电机学习2024116
  • 行业类别-金融科技-子类别区块链技术-细分类别智能合约-应用场景供应链金融课题
  • ElementPlus el-upload上传组件on-change只触发一次