三大重点
-
为什么要制定Git分支管理规范
-
规范的Git分支都有哪些
-
Git分支在实际开发中使用流程
目标分析
1.为什么要制定Git分支管理规范?
-
加速团队协作,让成员明确各分支用途。
-
确保代码质量,通过审查保证稳定性和高质量。
-
维护主分支稳定,避免未完成代码干扰生产环境。
-
支持敏捷开发,适应快速迭代和持续集成。
-
便于问题解决,快速定位错误来源。
-
新人快速上手,标准化流程易于理解。
2.Git分支都有哪些?
主分支:
主干分支具有分支保护权限,只有运维有权限进行合并分支
分支模型 | 用途 |
master | 主干分支,正式版本代码归档 |
develop | 开发分支,团队成员日常开发的主分支 |
doc | 文档分支,SQL脚本、配置等 |
辅助分支:
属于临时分支,当功能合并主干后,会删除清理掉
分支模型 | 用途 |
feature | 从develop拉取开发的功能分支 |
hotfix | bug修复分支 |
3.Git分支在实际开发中使用流程
一. 开发前,通过develop分支拉取功能分支
✅有什么好处?
保持团队的起始开发分支一致,从同一个起点出发
通过develop中拉取feature分支
二. 开发中,各个组员根据功能分支拉取自己临时开发分支
✅有什么好处?
团队成员有自己临时开发分支,保证开发灵活性,提测版本稳定性,保证功能分支的健壮稳定性
通过feature分支,团队内对应组员自己拉取进行开发,不仅实现了庞大项目的解耦合,同时提高了小组内的沟通效率
三. 提测中,各个组员将自己临时开发分支合并到功能分支进行流水线打包提测
✅有什么好处?
团队成员每完成自己任务并验证后,即可合并提测,提高合作效率,加快提测速度,推进项目进度有序进行
张三开发的模块A功能完成,本地调试正常后,将自己临时分支合并到功能分支,流水线由测试环节打包功能分支,李四同理。
四. 预生产稳定后,将蓝绿部署平衡切换,然后逐个合并分支
什么是蓝绿部署
蓝绿部署是一种将生产环境直接从当前版本(蓝色)切换到新版本(绿色)的策略。这要求同时运行两个完全相同的生产环境,但只有一个对外提供服务。
举个例子:你有两个餐厅大厅,一个叫「蓝厅」,一个叫「绿厅」。蓝绿部署的方式就像你用这两个大厅来轮流接待顾客。
蓝绿部署的流程
-
蓝厅正在营业:平时,所有的顾客都在蓝厅吃饭,你让蓝厅正常营业。
-
准备绿厅:你决定对餐厅进行一些改进,比如换新菜单、装修一下,但你不想打扰顾客吃饭。于是,你偷偷把这些改进先在绿厅上准备好(分支的建立,代码更改,提测,预生产等不对外开放,也就不会影响线上环境)。
-
切换大厅:当绿厅的一切准备就绪后,你会让顾客从蓝厅转移到绿厅。这时候,顾客到绿厅继续吃饭,只是环境稍微不同了,或者菜单更新了。
-
备用蓝厅:现在绿厅开始正常营业了,蓝厅则空闲下来。你可以随时在蓝厅再做新的改进,或者如果发现绿厅有任何问题,你可以马上把顾客切换回蓝厅,进行合理负载。
蓝绿部署的好处
-
不打扰顾客:顾客一直都有一个大厅可以用,不会因为你在装修或改进而受到影响。
-
随时切换:如果新的绿厅有问题,你可以立即切回蓝厅,保证顾客的体验不受影响。
在网站的更新中,蓝色和绿色代表的是两套同样的系统(比如两个服务器)。平时用户使用蓝色的系统,技术团队在绿色系统上进行改进和测试。当绿色系统准备好后,就会切换到用户面前。这样用户几乎不会注意到系统的更换,也不会受到更新过程的干扰。
蓝绿部署就是让两套系统轮流工作,确保系统更新流畅、用户体验良好。
原本工作的是稳定的旧系统(蓝厅)。基于此,我们开发了一个新的系统(绿厅)。新系统在开发中的一系列工作不对外提供服务。当预生产稳定后,我们将提供服务的系统从蓝切换到绿。系统稳定后,旧系统便可空闲下来,最后再对其进行分支的合并。
总结
概要
本文详细介绍了制定Git分支管理规范的必要性以及一个典型企业内部的Git分支管理流程,旨在通过规范化的Git操作促进团队高效协作、确保代码质量和提升开发流程的灵活性。
文章核心
-
为何制定规范:规范有助于加速团队协作,确保代码质量,维护主分支稳定,支持敏捷开发模式,便于问题追踪,加速新人融入,及促进代码复用。
-
Git分支结构:主分支:包括master(存放正式版本)、develop(日常开发主分支)、doc(文档与配置相关)。辅助分支:分为feature(特性开发)和hotfix(紧急修复),属于临时性分支,完成后会合并并删除。
实际操作流程
-
开发前:从develop分支创建带有特定命名规则的feature分支,以保持团队同步并方便自动化部署。
-
开发中:团队成员基于功能分支各自拉取临时开发分支,实现灵活开发同时保持功能分支的稳定。
-
提测阶段:完成开发的成员将个人分支合并回功能分支,由测试团队基于此分支进行打包测试。
-
部署上线:采用蓝绿部署策略,确保新版本无缝切换至生产环境,同时逐步完成各分支的合并,保证版本的连续性和环境的稳定性。