Git主干分支master开发优缺点

news2024/11/17 23:40:29

优缺点

主干开发:是指开发人员直接向主干(习惯上主干分支通常为:main或master)提交/推送代码。通常开发团队的成员1天至少一次地将代码提交到主干分支,在到达发布条件时,从主干拉出发布分支通常为(release),用于发布,若发现缺陷,直接在主干上修复,并根据需要cherry pick到对应版本的发布分支,

优点缺点
分支模型简单高效,开发人员易于掌握不容易出现错误操作,基础架构要求高:合入到主干的代码若质量不过关将直接阻塞整个团队的开发工作,因此需要高效的持续集成平台进行把关;
避免了分支合并,冲突解决的困扰,自动化测试要求高:需有完备单元测试代码,确保在代码合入主干前能在获得快速和可靠的质量反馈,
随时拥有可发布的版本,有利于持续集成和持续交付最好有代码评审:若代码质量要求高,需要配套代码评审(CR)机制,在代码提交到主干时,触发CR,通过Peer Review后才能正式合入,
最好有特性开关:主干开发频发合入主干的情况下,特性拆分的很小,可能是半成品特性,需要配套开关(Feature Toggle),只有当特性整体开发完才通过灰度发布等手段逐步打开

场景

现代Git实践更倾向于使用main作为默认分支名称以避免某些文化上的敏感性问题)开发适合以下几种场景:

‌小型项目‌:对于规模较小、开发周期短、团队成员少的项目,使用主干分支开发可以简化流程,提高开发效率。

‌快速迭代‌:在需要快速迭代和频繁发布的情况下,主干分支开发能够减少分支管理带来的开销,使得新功能能够更快地集成到产品中。

‌持续集成/持续部署(CI/CD)‌:主干分支开发非常适合与CI/CD流程结合使用。通过自动化测试和部署,可以确保主干上的代码始终是可用的,从而加速开发到部署的整个过程。

‌功能分支较少‌:如果项目中大部分工作都是直接在主干上进行,且功能分支较少,那么使用主干分支开发是合理的。这种情况下,团队成员可以更容易地保持对项目的整体了解,减少合并冲突的可能性。

‌高度协同的团队‌:对于高度协同、沟通顺畅的团队来说,主干分支开发可以促进团队成员之间的紧密合作。通过频繁的代码审查和交流,可以及时发现和解决问题,确保项目的顺利进行。

然而,需要注意的是,主干分支开发也要求团队成员具备较高的责任感和自律性,以确保代码的质量和稳定性。同时,对于大型项目或需要长期维护的项目来说,可能需要更复杂的分支管理策略来应对不同的开发需求和版本控制问题。因此,在选择是否使用主干分支开发时,需要根据项目的实际情况和团队的特点进行权衡。

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

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

相关文章

《生成式 AI》课程 第3講 CODE TASK 任务2:角色扮演的机器人

课程 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客 我们希望你设计一个机器人服务,你可以用LM玩角色扮演游戏。 与LM进行多轮对话 提示:告诉聊天机器人扮演任意角色。 后续输入:与聊天机器人交互。 Part 2: Role…

【软件工程】一篇入门UML建模图(类图)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀软件开发必练内功_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

展会邀约|加速科技与您相约IC China 2024!

第二十一届中国国际半导体博览会( IC China 2024)将于 2024 年11月18日—11月20日在北京国家会议中心举行。加速科技将携高性能测试机ST2500EX、ST2500E、eATE及全系测试解决方案亮相E2馆B150展位。博览会期间,将同期举办"半导体产业前沿…

用python中的tkinter包实现进度条

python中的tkinter包是一种常见的设计程序的GUI界面用的包。本文主要介绍这里面的一个组件:进度条(Progressbar)。Tkinter Progressbar里面对进度条组件已经做了一定的介绍,但比较抽象。本文以另一种方式介绍这个组件及其常用用法…

蓝桥杯每日真题 - 第15天

题目:(钟表) 题目描述(13届 C&C B组B题) 解题思路: 理解钟表指针的运动: 秒针每分钟转一圈,即每秒转6度。 分针每小时转一圈,即每分钟转6度。 时针每12小时转一圈…

rust高级特征

文章目录 不安全的rust解引用裸指针裸指针与引用和智能指针的区别裸指针使用解引用运算符 *,这需要一个 unsafe 块调用不安全函数或方法在不安全的代码之上构建一个安全的抽象层 使用 extern 函数调用外部代码rust调用C语言函数rust接口被C语言程序调用 访问或修改可…

ArcGIS Pro属性表乱码与字段名3个汉字解决方案大总结

01 背景 我们之前在使用ArcGIS出现导出Excel中文乱码及shp添加字段3个字被截断的情况,我们有以下应对策略: 推荐阅读:ArcGIS导出Excel中文乱码及shp添加字段3个字被截断? 那如果我们使用ArGIS Pro出现上述问题,该如何…

GOLANG+VUE后台管理系统

1.截图 2.后端工程截图 3.前端工程截图

STM32设计防丢防摔智能行李箱

目录 目录 前言 一、本设计主要实现哪些很“开门”功能? 二、电路设计原理图 1.电路图采用Altium Designer进行设计: 2.实物展示图片 三、程序源代码设计 四、获取资料内容 前言 随着科技的不断发展,嵌入式系统、物联网技术、智能设备…

论文阅读 - Causally Regularized Learning with Agnostic Data Selection

代码链接: GitHub - HMTTT/CRLR: CRLR尝试实现 https://arxiv.org/pdf/1708.06656v2 目录 摘要 INTRODUCTION 2 RELATED WORK 3 CAUSALLY REGULARIZED LOGISTIC REGRESSION 3.1 Problem Formulation 3.2 Confounder Balancing 3.3 Causally Regularized Lo…

探索Python文档自动化的奥秘:`python-docx`库全解析

文章目录 探索Python文档自动化的奥秘:python-docx库全解析1. 背景:为何选择python-docx?2. python-docx是什么?3. 如何安装python-docx?4. 简单库函数使用方法创建文档添加段落添加标题添加表格插入图片 5. 应用场景自…

Vue3 -- element-plus【项目集成1】

本次项目采用的UI组件库为element-plus,请各位看官根据实际情况进行观看。 集成element-plus: 官网直达车:element-plus 官网明确指出如何引入使用。 安装element-plus: 选择一个你喜欢的包管理器: npm install el…

MySQL 中的集群部署方案

文章目录 MySQL 中的集群部署方案MySQL ReplicationMySQL Group ReplicationInnoDB ClusterInnoDB ClusterSetInnoDB ReplicaSetMMMMHAGalera ClusterMySQL ClusterMySQL Fabric 总结参考 MySQL 中的集群部署方案 MySQL Replication MySQL Replication 是官方提供的主从同步方…

【功耗现象】com.gorgeous.lite后台Camera 使用2小时平均电流200mA耗电量400mAh现象

现象 轻颜相机(com.gorgeous.lite)后台Camera 使用2小时平均电流200mA(BugReport提供的电流参考数据),耗电量400mAh 即耗电占比(200mA*2h)/(12.83h*52.68mA )400mAh/623mAh62% CameraOct 10 202321:03:08 - 23:03:372h16m15s859ms to 4h16m44s984msactive duration: 2h 0m 29…

Unix信号

文章目录 信号概念及产生键盘事件eg软件中断eg硬件中断eg 信号处理方式PCB中关于信号的数据结构信号捕捉 信号集sigset_tsigprocmasksigpending 信号处理程序signal、sigaction可重入函数可靠信号 kill、raise 信号概念及产生 信号是一种异步通知机制,内核通过信号…

如何解决由于找不到d3dx9_43.dll导致游戏启动失败?这里是如何解决的完整指南

遇到“由于找不到d3dx9_43.dll”错误时,很多用户可能会感到困惑和无助。这个问题通常发生在尝试启动游戏或使用基于DirectX的应用程序时。d3dx9_43.dll是Microsoft DirectX软件的一部分,专门用于处理复杂的图形计算,缺少它意味着某些图形功能…

任务函数分析

一、页面存储栈 PageStack 1、头文件 #include "ui.h"#define MAX_DEPTH 6typedef long long int StackData_t;typedef struct {StackData_t Data[MAX_DEPTH];uint8_t Top_Point;}user_Stack_T;uint8_t user_Stack_Push(user_Stack_T* stack, StackData_t datain)…

Springboot 微信小程序定位后将坐标转换为百度地图坐标,在百度地图做逆地址解析

问题解析以及解决思路 业务:微信小程序定位后,将坐标转换为百度地图坐标,在百度地图做逆地址解析 问题:微信小程序的定位是拿的腾讯地图的经纬度,但是我们app端这边使用的百度地图,如果直接使用腾讯地图的经纬度再使用腾讯地图的逆地址解析需要腾讯和百度商业授权,为了减少授权…

vue注册全局组件,其他地方可以直接方便的调用

文章目录 问题注册全局组件完结 问题 本来我们想使用某个组件,需要在各个地方引入对应的参数,并配置好components内容,才可以使用 但是随着用的越来越多,这种方法变得重复且易出错 注册全局组件 修改main.js文件,放…

Kubernetes 10 问,测测你对 k8s 的理解程度

Kubernetes 10 问 假设集群有 2 个 node 节点,其中一个有 pod,另一个则没有,那么新的 pod 会被调度到哪个节点上? 应用程序通过容器的形式运行,如果 OOM(Out-of-Memory)了,是容器重…