Git-工作流

news2024/11/17 21:53:38

前言

  • 一、工作流概述
  • 二、Git flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 三、Github flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 四、Gitlab flow
    • 1.主要流程
    • 2.优缺点
    • 3.适用场景
  • 总结
      • 参考

一、工作流概述

开发人员通过Git可以记录和追踪代码的变化,包括添加、删除和修改文件。如果是单人进行开发,可以很方便进行研发和发布等工作。但是实际工作中都是团队协作进行多功能点并行开发,还涉及测试环境、集成环境和生产环境的打包发布,以及线上bug修复等,如何将以上工作进行协调,这就需要一套完整的代码管理和版本控制的流程规范。
而在团队中使用Git进行协作开发时,各个成员遵循的一套代码管理和版本控制的规范流程就是Git工作流。根据实际工作经验,被广泛使用的Git工作流为:Git flow、Github flow、Gitlab flow。

二、Git flow

在这里插入图片描述

1.主要流程

  • master是最稳定分支,其中代码是最稳定的、其中代码已经验证充分并且已发布到生产环境,可以通过master跟踪生产环境版本发布情况。
  • develop是主开发分支,feature分支和release分支都是从此分支拉取。可以通过develop跟踪开发过程中的版本情况。
  • feature:功能分支,主要是需要开发新功能从develop进行拉取,开发完成后合并回develop分支。
  • elease:预发布分支,主要是为发布做准备,从develop拉取然后在预发环境进行验证,用来修复一些bug。
  • hotfix:热修复分支,当生产环境遇到需要紧急修复的情况,从master进行拉取进行修复并发布。

2.优缺点

优点:规则明确详细、每步操作都有详细的操作规范、适合各种复杂情况
缺点:规则复杂、学习成本高、分支维护复杂

3.适用场景

  • 团队成员多、项目数量多
  • 基于版本发布的开发模式、不适合持续发布模式
  • 支持多版本并行开发模式

三、Github flow

相对于git flow复杂的分支管理模式,github flow的整个工作流相对简化了很多。
在这里插入图片描述

1.主要流程

  • main/master 分支:用于发布正式版本的分支,只有待发布的代码才会被合并到该分支。
  • feature分支:用于开发新功能的分支。每个功能都应该在一个单独的 feature 分支上进行开发,开发完成后再合并到 main/master 分支。

2.优缺点

  • 优点:分支管理简单明了
  • 缺点:不适合复杂情况

3.适用场景

  • 小团队、项目数量少
  • 敏捷开发、持续迭代和集成

四、Gitlab flow

1.主要流程

  • main/master 分支:用于发布正式版本的分支。 与GitHub Flow 中的主干分支类似,只有可发布的代码会被合并到该分支。
  • feature 分支:用于开发新功能的分支。每个功能都应该在一个单独的 feature 分支上进行开发,开发完成后再合并到main/master 分支。
  • bugfix 分支:用于修复 Bug 的分支。当出现 Bug 时,开发者应该从 main/master分支上创建一个 bugfix 分支进行修复,并将修复后的代码合并到 main/master 分支。
  • hotfix分支:用于紧急修复问题的分支。该分支是在 master 分支上针对生产环境的紧急修复,Bug 修复或安全漏洞修复等。

2.优缺点

  • 优点:具有较为简单的分支管理策略
  • 缺点:不适合复杂情况

3.适用场景

  • 适合中小团队和企业的敏捷开发环境

总结

git工作流主要是团队在协作开发中需要遵守的一套代码管理和版本控制的流程规范,广泛应用的Git Flow、GitHub Flow、GitLab Flow工作流都有其合适的场景和特点。需要根据项目的具体需求和团队规模选择合适的工作流。

参考

1.git flow工作流:https://nvie.com/posts/a-successful-git-branching-model/

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

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

相关文章

贪吃蛇和俄罗斯方块

贪吃蛇 一、创建新项目 创建一个新的项目,并命名。 创建一个名为images的文件夹用来存放游戏相关图片。 然后再在项目的src文件下创建一个com.xxx.view的包用来存放所有的图形界面类, 创建一个com.xxx.controller的包用来存放启动的入口类(控制类) …

C语言精选练习题:(7)计算最大值和最小值的差

每日一言 欲把西湖比西子,淡妆浓抹总相宜。 --饮湖上初晴后雨二首其二 题目 输入10个整数,找出其中的最大和最小值,计算两者的差,并打印出来 解题思路 创建一个数组用循环将10个整数存到数组中用打擂台的方式求出最大和最小值打…

浅谈二叉树

✏️✏️✏️今天给大家分享一下二叉树的基本概念以及性质、二叉树的自定义实现,二叉树的遍历等。 清风的CSDN博客 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位看官多多指教,大家一起学习交流&…

讲座录播 | 邹磊教授:图数据库的概念和应用

2023年10月16日 由中国计算机学会主办的 “CCF Talk”直播间 进行了题目为 术语解读:“图计算”的内涵与应用 主题直播活动 讲座吸引7708人观看 图作为一种灵活表达复杂关联关系的数据结构,目前已广泛地应用于社会治理、医疗健康、电网分析、计算材料、计算育…

嵌入式软件工程师面试题——2025校招社招通用(十三)

说明: 面试题来源于网络书籍,公司题目以及博主原创或修改(题目大部分来源于各种公司);文中很多题目,或许大家直接编译器写完,1分钟就出结果了。但在这里博主希望每一个题目,大家都要…

Linux下MSSQL (SQL Server)数据库无法启动故障处理

有同事反馈一套CentOS7下的mssql server2017无法启动需要我帮忙看看,启动报错情况如下 检查日志并没有更新日志信息 乍一看mssql-server服务有问题,检查mssql也确实没有进程 既然服务有问题,那么我们用一种方式直接手工后台启动mssql引擎来…

有什么价格实惠的猫罐头?2023良心性价比的猫罐头推荐!

选购猫罐头至关重要,好的猫罐头不仅营养丰富,水分充足,适口性佳,还能易于消化吸收。然而,若选择不当,可能不仅无法达到预期效果,甚至可能产生负面影响。 作为一个从事宠物行业7年的宠物店店长&…

Python语言的十大特性。

文章目录 前言一、Python二、Python 编程语言的特性三、开源四、Python 中的 GUI 编程支持五、Python 支持高级语言六、可扩展性七、可移植性八、大型标准库九、解释性语言十、面向对象程序设计语言十一、表达力十二、常见问题总结Python技术资源分享1、Python所有方向的学习路…

【Mybatis小白从0到90%精讲】17:Mybatis Mapper XML必须同包同名吗?mappers配置的4种方式详解

文章目录 前言一、package方式二、resource方式三、url方式四、class方式五、源码求证前言 对于Mybatis Mapper,通常都是 Java接口与Mapper.xml 同包同名,那么是否必须同包同名? 实际上并不是必须,对于Mapper的配置,是在全局配置文件 mybatis-config.xml 中 通过mappers…

孙哥Spring源码第29集

第29集 解析事务属性中的传播属性 【视频来源于:B站up主孙帅suns Spring源码视频】【微信号:suns45】 1、事务属性有哪些? 1、事务属性2、传播属性3、只读属性 设置事务为只读,提高事务运行的效率 false 4、超时属性 超时属性 通…

一、认识微服务

目录 一、单体架构 二、分布式架构 三、微服务 1、微服务架构特征: 1.单一职责: 2.面向服务: 3.自治: 4.隔离性强: 2、微服务结构: 3、微服务技术对比: 一、单体架构 二、分布式架构 三…

UITableView的style是UITableViewStyleGrouped

一般情况下,UITableViewStylePlain和UITableViewStyleGrouped是UITableView常用到的style, 之前都是用到的时候,遇到问题直接用度娘,差不多就够用了,今天在修复UI提出的间隙问题,来回改,总觉得…

Rust-使用dotenvy加载和使用环境变量

系统的开发,测试和部署离不开环境变量,今天分享在Rust的系统开发中,使用dotenvy来读取和使用环境变量。 安装 cargo add dotenvy dotenv_codegen 加载环境变量 use dotenvy::dotenv;fn main() {dotenv().expect(".env不存在");…

[WSL] 安装hive3.1.2成功后, 使用datagrip连接失败

org.apache.hadoop.ipc.RemoteException:User: xxx is not allowed to impersonate anonymous 下载driver-hive-jdbc-3.1.2-standalone 解决 修改hadoop 配置文件 etc/hadoop/core-site.xml,加入如下配置项 <property><name>hadoop.proxyuser.你的用户名.hosts…

李开复:未来AI或助力中国成为科技“火车头”

原创 | 文 BFT机器人 6月22日&#xff0c;创新工场的董事长兼首席执行官李开复&#xff0c;受邀在一场峰会上发表演讲&#xff0c;主题为《AI的飞奔时代》。 中国真的能成为AI超级强国吗&#xff1f; 李开复在演讲上盘点过去&#xff0c;展望未来&#xff0c;分析了过去几年中…

优秀智慧园区案例 - 珠海华发智慧园区,万字长文解析先进智慧园区建设方案经验

一、项目背景 珠海华发产业园运营管理有限公司&#xff08;简称“产业园公司”&#xff09;是2016年起连续五年跻身“中国企业500强”、国务院国企改革“双百企业”的珠海华发集团旗下的实体产业发展载体运营平台&#xff0c;依托“四园一基地”&#xff1a;中以国际产业园、信…

CTFhub-RCE-文件包含

访问网站 我们仔细看一下php代码&#xff0c;重点是 if (!strpos($_GET["file"], "flag")) { include $_GET["file"]; 这里有一个strpos(string,find,start)函数 意思在string字符串中找find的位置,start是查找的开始位置 那么这句代…

azkaban的安装

一、下载上传文件 二、创建目录 mkdir /opt/soft/azkaban 三、解压 tar -zxvf /opt/install/azkaban-db-3.84.4.tar.gz -C /opt/soft/azkaban tar -zxvf /opt/install/azkaban-exec-server-3.84.4.tar.gz -C /opt/soft/azkaban tar -zxvf /opt/install/azkaban-web-server-…

DALLE 2 文生图模型实践指南

前言&#xff1a;最近在运行dalle2模型进行推断&#xff0c;本篇博客记录相关资料。 相关博客&#xff1a;超详细&#xff01;DALL E 文生图模型实践指南 目录 1. 环境搭建和预训练模型准备环境搭建预训练模型下载 2. 代码3. BUG&DEBUGURLErrorRuntimeErrorCUDA error 1. …

【C语言 | 指针】C指针详解(经典,非常详细)

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…