GitLab教程(五):高效的工作模式——Feature Branching

文章目录

  • 1.什么是Feature Branching
  • 2.Feature Branching的Git实践

1.什么是Feature Branching

特性分支(Feature Branching)是一种软件开发工作流,尤其在使用Git或其他版本控制系统时被广泛采用。这种策略鼓励开发者为每一个新功能、改进或者代码改动创建一个独立的分支进行开发,以此来组织和管理代码更改。下面是特性分支工作流程的关键要点:

  1. 创建分支:当开始开发一个新的功能时,首先从主分支(通常是mainmaster)创建一个新分支。这个新分支被称为“特性分支”,命名上通常会反映该分支所包含的特性的名称或目的,例如feature/login-page-redesign

  2. 独立开发:开发者在特性分支上进行代码编写、测试和修改,而不会影响到主分支上的代码。这意味着其他团队成员可以继续在主分支上进行稳定版本的维护或开发其他功能,实现了并行开发。

  3. 代码审查:一旦特性开发完成,并通过了本地测试,开发者会将特性分支合并请求(Pull Request或Merge Request)提交给项目负责人或团队其他成员进行代码审查。这一过程有助于确保代码质量,分享知识,以及早发现和修复问题。

  4. 合并与冲突解决:经过审查并确认无误后,特性分支会被合并回主分支。如果在此过程中出现代码冲突,需要先解决冲突,确保代码的整合不会破坏现有功能。

  5. 持续集成:很多团队还会结合持续集成/持续部署(CI/CD)工具,在特性分支合并前自动运行测试,进一步保证代码质量,减少错误引入主分支的风险。

  6. 分支清理:合并完成后,根据团队规范,可能需要删除已合并的特性分支,以保持版本库的整洁。

特性分支的优势包括:

  • 隔离开发环境:使得每个特性的工作可以独立进行,减少了开发中的干扰。
  • 便于代码审查:清晰地界定了待审查的代码范围,促进团队协作和代码质量提升。
  • 灵活的开发流程:支持并行开发多个特性,加快开发速度。
  • 易于回滚和管理:如果特性开发出现问题,可以直接丢弃该分支,不影响主分支的稳定性。

这是一种十分流行的版本管理工作模式,以下是使用Feature Branching工作流程图:

在这里插入图片描述

2.Feature Branching的Git实践

  • 首先Gitlab上的project仓库的main分支如下图所示:

在这里插入图片描述

  • 现在我作为一个开发人员新建一个分支dev来进行新需求的开发:

在这里插入图片描述

  • 修改code.txt

在这里插入图片描述

  • 提交更改,将本地dev分支提交到中央仓库的dev分支:

在这里插入图片描述

  • 创建merge request,请求将dev分支合并至main主分支:

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 管理员会收到merge request,并对变更进行code review:

在这里插入图片描述

  • 遇到conflict,需要解决了conflict才能merge:

在这里插入图片描述

在这里插入图片描述

  • 至此,dev分支的内容已经被merge到了main分支中,且dev分支被自动删除了,可以看到分支现在只剩主分支一个:

在这里插入图片描述

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

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

相关文章

推荐一款好用的读论文软件操作方法

步骤: 1. 使用一译 —— 文档和论文翻译、对照阅读、讨论和社区 2.上传自己想要翻译的论文即可。 示例 Planing论文双语翻译 1.1 Parting with Misconceptions about Learning-based Vehicle Motion Planning 中英文对照阅读 1.2 Rethinking Imitation-based Pl…

SCT82A32 是一款 100V 电压模式控制同步降压控制器

主要特征 ◦ 5.5V-100V 宽输入范围 ◦ 0.8V-60V 可调输出电压 ◦ 0.8V1% 参考电压 ◦ 最低占空比下的40ns 最小 tON ◦ 最高占空比下的150ns 最小 tOFF • 100 KHz 到 1.2 MHz 开关频率 ◦ 时钟同步输入/输出功能 ◦ 可选择二极管仿真或 FPWM • 7.5V 门极驱动器 ◦ 2.3A …

Spring Cloud Gateway 详解:构建高效的API网关解决方案

Spring Cloud Gateway 详解:构建高效的API网关解决方案 Spring Cloud Gateway 是 Spring Cloud 生态系统中用于构建 API 网关的核心组件。它基于 Spring WebFlux 构建,旨在提供简单且有效的方式来路由和增强 API 请求。以下是 Spring Cloud Gateway 的详…

【iOS】YYModel源码阅读笔记

文章目录 前言一、JSON转换库对比二、YYModel性能优化三、YYModel的使用四、架构分析YYClassInfo 剖析 五、流程剖析转换前准备工作 – 将JSON统一成NSDictionary将NSDictionary 转换为Model对象提取Model信息使用NSDictionary的数据填充Model 总结 前言 先前写了JSONModel的源…

如何计算可截素数

什么是可截素数? 它本身是一个素数,如果从左往右逐一截去数字,剩下的仍然都是素数,如果从右往左逐一截去数字,剩下的也仍然都是素数。 例如:3797就是一个可截素数。 从左往右截去数字:797&a…

利用three-csg-ts对做物体交互式挖洞

默认物体均为居中,如果指定位置没有发生偏移,可能是因为在执行布尔操作之前没有正确设置变换。确保在进行布尔运算之前应用所有必要的变换。以下是经过修正的完整代码示例,它会确保圆柱正确旋转并与盒子进行 CSG 操作。 安装依赖 首先&…

如何实现网络隔离后,军工单位内网数据导出的安全性?

在现代信息化战争中,军工单位在信息安全方面的需求尤为突出。通常会采用物理隔离,将网络隔离成内网和外网,防止外部网络的恶意入侵和数据窃取。隔离后的数据仍存在内外网交换的需求,即涉及到内网数据导出,因此每日会面…

盒马鲜生礼品卡如何使用?

盒马鲜生的礼品卡除了在门店用以外,还有什么用处啊 毕竟家附近的盒马距离都太远了,好多卡最后都闲置下来了,而且以前都不知道盒马卡还会过期,浪费了好多 还好最近发现了 盒马鲜生礼品卡现在也能在收卡云上兑现了,而且…

深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南

📢📢📢 深入解析 Spring Cloud Sentinel:分布式系统流量控制与熔断降级的全面指南 Spring Cloud Sentinel 是阿里巴巴开源的一款强大的分布式系统流量防卫组件,专为微服务架构设计,提供流量控制、熔断降级…

watcher学习小结

架构 主要是watcher-api,watcher-applier,watcher-decision-engine watcher-applier watcher-decision-engine 将DecisionEngineManager和DecisionEngineSchedulingService封装到oslo_service,然后调service的launch_service,实…

NetSuite ERP项目中非批次物料—批次物料数据转换流程

最近在刚结束的项目上也再次碰到了非批次物料转换为批次物料的操作,因此也想把我们在处理数据流程中的心得写出来,以便复盘与总结,也分享给各位。 整体的步骤我们可分为准备工作,调整工作以及检查工作: 准备工作 主…

抖店退款退货率太高,平台也不帮助商家,快做不下去了怎么办?

我是王路飞。 现在很多商家对抖店的评价是:比拼多多还狠,动不动就扣保证金,退款率太高,而平台一边倒站买家,要是再遇到个别发疯的买家,商家真的很无助。 其实关于抖店退款退货率高、平台也不站在商家这一…

编译结果处理的shell脚本

#!/bin/bash WEB"web" DIST"dist" RED\033[0:31m GREEN\033[0;32m NC\033[0m #生产打包传参 BUILD"b" if [ -e ${WEB} ];then#删历史文件rm -r ${WEB}rm ${WEB}.zip fi #编辑文件 npm run build #检查构建是否成功 if[ -e ${DIST} ];then#改名mv…

分布式事务的八种方案解析(1)

针对不同的分布式场景业界常见的解决方案有2PC、TCC、可靠消息最终一致性、最大努力通知等方案,以下总结8 种常见的解决方案,帮助大家在实际的分布式系统中更好地运用事务。 1.2PC 二阶段提交协议(Two-phase commit protocol)&…

好用的视频压缩软件

在当今数字化时代,视频已成为我们日常生活中不可或缺的一部分。无论是工作、学习还是娱乐,视频都扮演着重要的角色。视频的存储空间也越来越大,这给我们的设备存储带来了不小的挑战。因此,学习如何将视频压缩小点成为了一项实用的…

叁[3],VM二次开发异常处理

1,开发环境 VS2022/WPF/.NetFramework4.8 VM4.2 2,"模块状态0,错误码10100005,错误信息:模块与平台不匹配" 现象描述: 1,WPF/NetFramework项目中打开方案,对工具做模板&#xff0c…

开源可视化表单可以用在哪些行业中?

很多客户朋友会询问我们,什么样的行业可以使用低代码技术平台及开源可视化表单?其实,随着社会的进步和发展,很多中小型企业都希望通过低代码技术平台能够让企业实现提质增效的目的,也想借助它的优势特点进入流程化办公…

怎么提升机器人外呼的转化效率

在某些情况下,如市场调查、产品推广等,语音机器人可以高效地完成大量的呼叫任务,并能通过预设的语音脚本和智能识别功能,初步筛选和分类潜在客户。此时,不转人工可能更为高效和经济。 然而,在一些需要深度沟…

jenkins使用注意问题

1.在编写流水线时并不知道当前处在哪个目录,导致名使用不当,以及文件位置不清楚 流水线任务默认路径是,test4_mvn为jenkins任务名 [Pipeline] sh (hide)pwd /var/jenkins_home/workspace/test4_mvn maven任务也是,看来是一样的…

【SpringBoot整合系列】SpringBoot整合kinfe4j

目录 kinfe4j与Swagger的区别 SpringBoot2.x整合kinfe4j1.添加依赖2.启动类注解3.创建Knife4J配置类4.实体类5.接口admin访问 api访问 常用注解汇总SpringBoot3.x整合Kinfe4j启动报错解决1.更换依赖2.启动类3.配置4.配置类5.参数实体类6.接口admin访问 api访问 各版本注解参照 …