高效的Gitlab Flow最佳实践
创作时间:
作者:
@小白创作中心
高效的Gitlab Flow最佳实践
引用
CSDN
1.
https://blog.csdn.net/u011436427/article/details/136843310
在软件开发中,Git工作流程的选择对于团队协作效率和代码质量有着重要影响。本文将详细介绍三种主流的Git工作流程:Git flow、GitHub flow和Gitlab flow,并重点介绍Gitlab flow的最佳实践。
一、Git flow
最早诞生并得到广泛采用的一种工作流程就是Git flow。它定义了两个长期分支:
- 主分支(master):存放对外发布的稳定版本
- 开发分支(develop):存放最新的开发版本
此外,还有三种短期分支:
- 功能分支(feature branch)
- 补丁分支(hotfix branch)
- 预发分支(release branch)
缺点:
- 单独使用Git flow命令管理较为复杂
- 运行起来过于复杂
二、GitHub flow
GitHub flow采用单一主分支(master)策略,流程简单直观:
- 根据需求从master拉出新分支
- 开发完成后发起Pull Request
- 通过代码评审和讨论后合并到master
- 重新部署后删除原分支
缺点:
- 对代码贡献者的素质要求较高
三、Gitlab flow
Gitlab flow结合了Git flow和GitHub flow的优点,采用"上游优先"原则:
- 持续发布模式:适用于持续集成/持续部署(CI/CD)场景
master分支:开发环境
pre-production分支:预发环境
production分支:生产环境
代码变化必须由上游向下游发展
- 版本发布模式:适用于定期发布新版本的项目
每个稳定版本从master分支拉出独立分支(如2-3-stable)
仅在需要修补bug时合并代码,并更新小版本号
四、基于Gitlab flow的最佳实践
采用Gitlab flow,按照版本发布的模式实施:
- 新的迭代开始,所有开发人员从主干master拉个人分支开发特性,分支命名规范为feature-name
- 开发完成后,在迭代结束前,合入master分支,master分支合并后,自动CI/CD到dev环境
- 开发自测通过后,从master拉取要发布的分支,release-$version,将这个分支部署到测试环境进行测试
- 测出的bug,通过从release-$versio拉出分支进行修复,修复完成后,再合入release-$version
- 正式发布版本,如果上线后,又有bug,根据5的方式处理 等发布版本稳定后(发布稳定版本),将release-$versio反合入主干
1. 语义化版本号
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
- 主版本号:当你做了不兼容的 API 修改,
- 次版本号:当你做了向下兼容的功能性新增,
- 修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译元数据可以加到“主版本号.次版本号.修订号”的后面,作为延伸。主版本号为0,代表还未发布正式版本。
2. 测试发布
- master分支,自动部署到开发环境(dev)
- 功能开发完成,并自测通过后,代码合并到待发布版本
- 分支规则:release-$version
- 版本规则:主版本号.次版本号.修订号
- 从最新的master新拉一个分支release-$version,比如release-0.1.1
- 设定release-$version 分支为保护分支,不允许直接推送,只能通过merge不允许直接提交代码,接受MR。
3. bug修复
需要修改bug时,从release-$version新拉分支,修改完成后再合并到release-$version分支.
常见问题:
- 从release-$version拉的分支,如何测试?建议开发同学优先本地测试验证,严重通过再合并到release分支。
- release-$version太多怎么办?可以保留最近的10个版本。历史的打tag后,删除分支。
热门推荐
虚拟机中的应用程序兼容性
孕期吃南瓜的好处和禁忌
亲子关系的界限与自由:如何在关爱与独立之间找到平衡
剧本杀里的东篱:从玩家到dm,从校园到社会
全球十大摩托车朝圣地:从66号公路到阿尔卑斯山脊
车里洒了柴油应怎样去除?去除柴油污渍有哪些方法?
油污问题轻松解决攻略及预防小贴士
巴豆的作用,从古代智慧到现代医学的全面解读
鼻塞 喷嚏 眼痒?老中医教你如何应对烦人的过敏性鼻炎!
美国学前教育学校的现状与选择指南
使用卡培他滨,注意“四要、四不要”
有限责任公司股东如何退股
在家制作意面的详细步骤解析
《鬼灭之刃 决战无限城》:血火交织的终极对决与人性救赎
志愿者经历如何体现
历史上数学和艺术之间的关系及教育思考
鬼灭之刃解说全篇第一季鬼灭之刃第一季全篇解说,详细解读第一季的情节、角色与背景
非遗活化焕新颜 文旅融合谱新篇——贵州镇远古城以非遗为媒打造文旅新名片
功能性软糖测评:胶原蛋白/叶黄素是智商税吗?
城市交通困境:如何应对堵车问题及影响?
电动三轮车用锂电池还是铅酸电池?全方位对比分析
电动三轮电机变速箱,了解电动三轮车的变速器原理
90%的人都踩坑丨科学护理,避免“好心办坏事”
为什么总是感到饥饿?假性饥饿的成因与应对方法
国产车崛起,新局下挑战与机遇并存
深度揭秘!查询法拍房房屋现状与欠费情况的实用攻略
提高倾听效果的技巧
日职前瞻:町田泽维亚VS川崎前锋 最新赛前全方位分析
项目管理类图片制作指南:从工具选择到实际应用
香港银行卡国外能用吗?使用指南详解