【规范】Git分支管理,看看我司是咋整的

前言

🍊缘由

Git分支管理好,走到哪里都是宝

在这里插入图片描述

🏀事情起因:

最近翻看博客中小伙伴评论时,发现文章【规范】看看人家Git提交描述,那叫一个规矩一条回复:

在这里插入图片描述

本狗亲测在我司中使用规范的好处,遂把我司的Git分支管理规范跟大家分享下,可能与大厂标准流程有些简化区别,望大厂大佬勿喷


🎯主要目标

实现3大重点
1. 为什么要制定Git分支管理规范
2. 我司Git分支都有哪些
3. Git分支在实际开发中使用流程

正文

🥦目标分析

1.为什么要制定Git分支管理规范?
  • 加速团队协作,让成员明确各分支用途。
  • 确保代码质量,通过审查保证稳定性和高质量。
  • 维护主分支稳定,避免未完成代码干扰生产环境。
  • 支持敏捷开发,适应快速迭代和持续集成。
  • 便于问题解决,快速定位错误来源。
  • 新人快速上手,标准化流程易于理解。
  • 促进代码复用,鼓励模块化开发。

2.我司Git分支都有哪些?

主分支:

主干分支具有分支保护权限,只有运维有权限进行合并分支

在这里插入图片描述

分支模型用途
master主干分支,正式版本代码归档
develop开发分支,团队成员日常开发的主分支
doc文档分支,SQL脚本、配置等

辅助分支:

属于临时分支,当功能合并主干后,会删除清理掉

分支模型用途
feature从develop拉取开发的功能分支
hotfixbug修复分支

3.Git分支在实际开发中使用流程

在这里插入图片描述

举个例子🌰

2024年7月3日,我司敏捷团队进行任务分解后,javadog项目正式开启新的迭代,版本号为v2.1.1

一. 开发前,通过develop分支拉取功能分支

✅有什么好处?

保持团队的起始开发分支一致,从同一个起点出发

通过develop中拉取新分支:feature-javadog-v2.1.1-SNAPSHOT-20240703

记住!记住!记住!
这个feature-javadog-v2.1.1-SNAPSHOT-20240703 叫功能分支

在这里插入图片描述

开发环境中,自动化部署都是通过这个分支名进行打包,命名解释如下:

在这里插入图片描述


二. 开发中,各个组员根据功能分支拉取自己临时开发分支

✅有什么好处?

团队成员有自己临时开发分支,保证开发灵活性,提测版本稳定性,保证功能分支的健壮稳定性

  1. 通过功能分支feature-javadog-v2.1.1-SNAPSHOT-20240703,拉取对应团队组员自己开发分支

在这里插入图片描述

👦张三拉取自己开发临时功能分支:feature-javadog-v2.1.1-SNAPSHOT-20240703-zhangsan

在这里插入图片描述

🧔李四拉取自己开发临时功能分支:feature-javadog-v2.1.1-SNAPSHOT-20240703-lisi


三. 提测中,各个组员将自己临时开发分支合并到功能分支进行流水线打包提测

✅有什么好处?

团队成员每完成自己任务并验证后,即可合并提测,提高合作效率,加快提测速度,推进项目进度有序进行

在这里插入图片描述
张三开发的模块A功能完成,本地调试正常后,将自己临时分支合并到功能分支,流水线由测试小姐姐打包功能分支feature-javadog-v2.1.1-SNAPSHOT-20240703


四. 开发环境测试结束,从功能开发分支拉出去掉快照标识的预生产分支

✅有什么好处?

保证功能分支灵活性,并兼顾预生产版本分支,如预生产环境遇到问题,可以在功能分支修复并在开发环境验证,解耦保持稳定性

在这里插入图片描述

通过功能分支feature-javadog-v2.1.1-SNAPSHOT-20240703,拉取feature-javadog-v2.1.1-20240703 预生产分支,并打出对应tag,然后发布预生产

在这里插入图片描述

五. 预生产稳定后,将蓝绿部署平衡切换正式,然后逐个将分支合并

❓什么是蓝绿部署

蓝绿部署是一种将生产环境直接从当前版本(蓝色)切换到新版本(绿色)的策略。这要求同时运行两个完全相同的生产环境,但只有一个对外提供服务。

聚个贴近实际的栗子🌰,来讲述蓝绿部署

一个蛋糕店,有两个员工分别是"蓝"员工A,和"绿"员工B

他们共同推销店里的同一种老蛋糕,也就是线上正在运行的老项目

这个时候店长说有新品上市了,就把A员工叫回店里去拿新蛋糕内测一下,也就是让蓝线去发布新需求v2.1.1,这条蓝线也只有店内自己评测,不会影响员工B老蛋糕销售,也就是不会影响线上正式环境

当员工A那里的新蛋糕评测完成后,就将B员工叫回店里,将A员工推出店外售卖,这样顾客就可以买到新蛋糕,也就是可以访问新的需求功能

当A员工新蛋糕卖的不错,也就是系统稳定后。再进行蓝绿部署平衡,将B员工也拿着新蛋糕和A员工一起售卖,进行合理负载

在这里插入图片描述

总结

本文详细介绍了制定Git分支管理规范的必要性以及一个典型企业内部的Git分支管理流程,旨在通过规范化的Git操作促进团队高效协作、确保代码质量和提升开发流程的灵活性。

文章核心

  • 为何制定规范:规范有助于加速团队协作,确保代码质量,维护主分支稳定,支持敏捷开发模式,便于问题追踪,加速新人融入,及促进代码复用。
  • 我司Git分支结构:
    主分支:包括master(存放正式版本)、develop(日常开发主分支)、doc(文档与配置相关)。
    辅助分支:分为feature(特性开发)和hotfix(紧急修复),属于临时性分支,完成后会合并并删除。

实际操作流程

  • 开发前:从develop分支创建带有特定命名规则的feature分支,如feature-功能名-版本号-日期,以保持团队同步并方便自动化部署。
  • 开发中:团队成员基于功能分支各自拉取临时开发分支,实现灵活开发同时保持功能分支的稳定。
  • 提测阶段:完成开发的成员将个人分支合并回功能分支,由测试团队基于此分支进行打包测试。
  • 预生产准备:功能分支验证无误后,创建去除快照标识的预生产分支,用于模拟生产环境的最后测试。
  • 部署上线:采用蓝绿部署策略,确保新版本无缝切换至生产环境,同时逐步完成各分支的合并,保证版本的连续性和环境的稳定性。

🍈猜你想问

如何与狗哥联系进行探讨
关注公众号【JavaDog程序狗】

公众号回复【入群】或者【加入】,便可成为【程序员学习交流摸鱼群】的一员,问题随便问,牛逼随便吹,目前群内已有超过280+个小伙伴啦!!!

请添加图片描述

2.踩踩狗哥博客

javadog.net

大家可以在里面留言,随意发挥,有问必答


🍯猜你喜欢

文章推荐

【工具】珍藏免费宝藏工具,不好用你来捶我

【插件】IDEA这款插件,爱到无法自拔

【规范】看看人家Git提交描述,那叫一个规矩

【工具】用nvm管理nodejs版本切换,真香!

【项目实战】SpringBoot+uniapp+uview2打造H5+小程序+APP入门学习的聊天小项目

【项目实战】SpringBoot+uniapp+uview2打造一个企业黑红名单吐槽小程序

【模块分层】还不会SpringBoot项目模块分层?来这手把手教你!

【ChatGPT】SpringBoot+uniapp+uview2对接OpenAI,带你开发玩转ChatGPT

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

windows电脑如何使用计划任务定时重启电脑

下面是亲测可用。 1.windows设置-搜索控制面板-系统和安全-管理工具–计划任务 这时候开始创建计划任务了 1.创建基本任务 2.填写名称(这里根据需要自己填写) 2.触发器里选择:每日,下一步 3.修改时间,然后点击下…

解密智慧校园学工管理系统的学生机构功能

智慧校园学工管理系统中的“学生机构”功能,是专为促进学生组织高效运作和校园文化繁荣而设计的一套数字化管理工具。它从多个维度出发,全面覆盖学生组织的生命周期管理,确保学生自治能力和校园活力得到显著提升。 首先,这一功能支…

【0291】Postgres内核之dynahash源码实现(1)

0. 新建 dynahash(dynamic hash table) Postgres内核中创建一个新的动态哈希表是由函数:hash_create() 完成。 该函数声明于 hsearch.h头文件中,其原型如下: extern HTAB *hash_create(const char *tabname, long nelem,HASHCTL *info, int flags);函数功能:创建一个新…

构造函数深入理解

目录 构造函数构造函数体赋值初始化列表初始化列表格式初始化列表的意义以及注意点const修饰的成员变量初始化对象成员具体初始化的地方缺省值存在的意义例子1例子2 初始化与赋值引用成员变量的初始化注意点1注意点2我的疑惑 自定义类型成员初始化例子1例子2例子3例子4 初始化列…

平衡二叉查找树和多路查找树

平衡二叉查找树 普通平衡二叉查找树 平衡二叉树定义是按照有序排列成树状,左子树数据大于右子树,任意节点的左右子树高度不能大于1 优点:可以保证绝对的平衡 缺点:当进行删除节点和新增节点,树进行自平衡的时候&…

Springboot 敏感词过滤

参考&#xff1a;网站是怎么屏蔽脏话的呢&#xff1a;简单学会SpringBoot项目敏感词、违规词过滤方案_springboot 项目关键词过滤-CSDN博客 【敏感词过滤】_wx60d2a462203aa的技术博客_51CTO博客 1、添加依赖 <dependency><groupId>com.github.houbb</group…

筛斗数据:开启数据提取与治理的新篇章

在数字化转型的浪潮中&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;如何从海量、复杂的数据中准确提取有价值的信息&#xff0c;并有效治理这些数据&#xff0c;使其成为驱动业务决策的重要力量&#xff0c;成为了众多企业面临的共同挑战。在十堰市这片充满活…

Vanchip新一代WiFi产品全新亮相

1‧ 研讨会介绍 随着 Wi-Fi7 时代的到来&#xff0c;高频信号衰减较高&#xff0c;因此需要外挂 FEM 电路以提高发射信号的增益&#xff0c;从而保障远距离通信的效果和范围。WiFi-FEM 逐渐成为智慧手机、路由器等终端产品中的标配芯片。Vanchip 针对客户的迫切需求&#x…

Python网页正文提取神器: readability库详解

Python网页正文提取神器: readability库详解 1. readability简介2. 安装3. 基本使用3.1 提取文章内容3.2 获取元数据 4. 高级功能4.1 自定义选项4.2 处理非标准HTML 5. 实际应用示例5.1 批量提取新闻文章5.2 创建简单的阅读模式 6. 性能优化7. 注意事项和局限性8. 总结 在网络爬…

【高精度实验】PFA具塞试管 四氟塞子 实验室分析专用

PFA具塞试管&#xff0c;以其四氟塞子的卓越密封性能&#xff0c;为实验室的精确度和安全性提供了双重保障。以下是针对PFA具塞试管的营销文案&#xff0c;特别强调其四氟塞子的特性&#xff1a; 【四氟密封&#xff0c;科研无忧】 在追求极致精确的科研世界里&#xff0c;PF…

上海市计算机学会竞赛平台2023年3月月赛丙组循环播放

题目描述 又是一年春暖花开&#xff0c;小爱与家人一起开车出游&#xff0c;在漫长的路途上&#xff0c;他开始播放自己的歌单以舒缓疲劳。 小爱的歌单中有&#x1d45b;n首歌&#xff0c;其中第 &#x1d456;i 首歌的时长为 &#x1d461;&#x1d456;ti​ 分钟&#xff0…

安华金和—可信数据空间助力公共数据授权运营安全有序开展的实践探索

伴随数字化、网络化和智能化的快速发展&#xff0c;数字经济与实体经济深度融合&#xff0c;数据已然成为经济发展赖以依托的基础性、战略性资源&#xff0c;对社会生产、分配、流通、消费和社会服务管理等各环节产生深刻影响。我国高度重视数字经济发展&#xff0c;将数据列入…

Linux安全加固:防火墙规则与SELinux策略

Linux系统的安全加固是一个多层面的过程&#xff0c;其中防火墙规则与SELinux策略是两个至关重要的方面&#xff0c;它们共同为系统提供了网络和本地级别的安全保障。 防火墙规则&#xff08;FirewallD/Iptables&#xff09; Firewalld • 简介&#xff1a;Firewalld是Linux…

理解 React 中的 API 封装、自定义 Hooks、组件、独立模块与 Context

在现代前端开发中&#xff0c;React 提供了多种方法来组织和管理代码。这些方法包括 API 封装、自定义 Hooks、组件、独立模块和 Context。理解它们的区别和联系&#xff0c;可以帮助我们编写更清晰、更模块化的代码。 1. API 封装 目的&#xff1a;处理与后端服务的通信逻辑…

14-21 人工智能的历史以及简单神经网络的工作原理

初始 “我们需要走得更深”这句台词出自电影《盗梦空间》。这是在讨论深入梦境更深层次时说的&#xff0c;暗示需要探索梦境的更深层次。虽然这似乎是不可能的&#xff0c;但它传达的理念是&#xff0c;要创造一个新的世界&#xff0c;就必须冒险进入更深的层次。 电影《盗梦空…

将List切割为多个指定长度的多个List

参考: https://blog.csdn.net/baidu_41480640/article/details/122507018https://blog.csdn.net/H1767410/article/details/138333350https://blog.51cto.com/u_16213352/7632003https://blog.csdn.net/2301_82243396/article/details/137900249 手写1 private List<List&l…

3D问界—MAYA中冻结变化的作用以及应用的场景

问题提出&#xff1a;MAYA中冻结变化的作用以及应用的场景 在Maya中&#xff0c;“冻结变换”&#xff08;Freeze Transformations&#xff09;的作用是重置对象的变换属性&#xff0c;包括平移、旋转和缩放&#xff0c;将它们归零或者设定为特定的值。这通常在以下几个步骤中需…

unity强力配置插件Luban【Next最新版本】(二)本地化

文章目录 前言一、快速实现静态本地化1、表格格式2、本地化文本3、修改bat文件3、打表 二、多语言切换1、修改bat文件2、增加本地化管理脚本3、测试 总结 前言 无需多言&#xff0c;本地化&#xff08;Localization&#xff0c;简称 L10N&#xff09;是指将产品、内容或服务适…

软考的报名详细流程

2024年软考的考试时间已经公布&#xff0c;分别为5月25日至28日和11月9日至12日。准备参加2024年软考的朋友们&#xff0c;一定要提前关注官方发布的考试安排。 本文将详细介绍软考报考的整个流程。准备报考的朋友们&#xff0c;阅读本文就足够啦&#xff01;软考的报考流程大致…

如何系列 如何确保Kafka消息可靠性/防止消息丢失

文章目录 ProducerBrokerConsumer流程 从Kafka架构来看&#xff0c;理论上仍有消息丢失的可能性&#xff0c;但实际发生的概率极低&#xff0c;只有在所有副本的机器都宕机时才会丢失。 当所有代理&#xff08;broker&#xff09;都确认消息时&#xff0c;这并不意味着消息已经…