它只有一个长期分支 master,其他分支都在其基础上创建 。使用流程如下:
- 根据需求,从 master 拉出新分支,不用区分功能分支或修复分支,但需要给出描述性的名称 。
- 本地的修改直接提交到该分支,并定期将其推送到远程库上的同一命名分支 。
- 新分支开发完成后,或者需要讨论的时候,向 master 发起一个 Pull Request(简称 PR) 。
- 【Git 分支管理策略汇总】Pull Request 既是一个通知 , 让别人注意到你的请求 , 又是一种对话机制,大家一起评审和讨论你的代码 。对话过程中,你还可以不断提交代码 。
- 你的 Pull Request 被接受,合并进 master,重新部署后,原来你拉出来的那个分支就被删除了 。
- 降低了分支管理复杂度,更适合小型团队,或者维护单个版本的项目开发 。
- 工作流程简单,对持续交付和持续集成友好 。
- 无法支持多版本代码部署 。
Gitlab flow 和 Github flow 之间的最大区别是 Gitlab flow 支持环境分支 。
Gitlab flow 的最大原则叫做"上游优先"(upsteam first),即只存在一个主分支 master,它是所有其他分支的"上游" 。只有上游分支采纳的代码变化,才能应用到其他分支 。
Gitlab flow 分成两种情形来应付不同的开发流程:
- 持续发布
- 版本发布
- 开发分支 master 用于发布到测试环境,该分支为受保护的分支 。
- 预发分支 pre-production 用于发布到预发环境,上游分支为 master 。
- 正式分支 production 用于发布到正式环境,上游分支为 pre-production 。
版本发布对于版本发布的项目 , 建议的做法是每一个稳定版本,都要从 master 分支拉出一个分支,比如 2-3-stable、2-4-stable 等 。
在出现 bug 后,根据对应的 release branch 创建一个修复分支,修复工作完成后 , 一样要按照上游优选的原则,先合并到 master 分支,经过测试才能够合并到 release 分支,并且此时要更新小版本号 。
小结优点:
- 可以区分不同的环境部署 。
- 对持续交付和持续集成友好 。
- 分支多,流程管理复杂 。
使用主干开发后 , 只有一个 master 分支了,所有新功能也都提交到 master 分支上,保证每次提交后 master 分支都是可随时发布的状态 。
推荐阅读
- 【Azure API 管理】Azure APIM服务集成在内部虚拟网络后,在内部环境中打开APIM门户使用APIs中的TEST功能失败
- 刚刚出壳的小鸡苗该怎么养(小鸡苗刚回来怎样管理)
- 如何做好小雏鸡的饲养管理(雏鸡的饲养管理关键技术)
- Git创建、diff代码、回退版本、撤回代码,学废了吗
- 1.python基础使用
- 非空的 git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库、ssh链接远程仓库,协同开发
- 如何在CentOS7上搭建自己的GitLab仓库
- 系统整理K8S的配置管理实战-建议收藏系列
- 使用GitHub Actions实现自动化部署
- 1分钟完成在线测试部署便捷收集班级同学文件的web管理系统