Git-工作流

前言

  • 一、工作流概述
  • 二、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/

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

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

相关文章

【Python 算法】双向迪杰斯特拉算法 Python实现

双向迪杰斯特拉算法Python实现 文章目录 双向迪杰斯特拉算法Python实现简介双向迪杰斯特拉算法优势局限性算法的基本步骤终止条件 基本步骤伪代码Python 实现 简介 双向迪杰斯特拉算法(Bi Directional Dijkstra Algorithm)是一种用于在加权图中查找两个…

红色旅游AR互动体验将景区推向更广泛的市场

AR技术的出现使得各展厅观众可以在虚拟和现实的层面进行互动,利用AR和VR技术,将展览地点扩展到特定的虚拟领域,实现了"无触觉"交互体验,增强现实技术和展馆的对接更加激发人们了解新事物的兴趣。 一、AR景区&#xff1a…

【03】Istio Gateway示例配置

3.1 开放kiali至集群外部 首先将istio-inressateway暴露集群外部; 在node02的ens33网卡上面有多余的ip地址,将该地址绑定在igressgateway的svc 上面。 kubectl edit svc istio-ingressgateway -n istio-system定义kiali的ingress gateway的资源配置清单 apiVersion:…

第十六章,反射与注解例题

package 例题; import java.lang.reflect.Constructor;class 例题1Demo {//变量String s;int i, i2, i3;private 例题1Demo() {//无参构造方法}protected 例题1Demo(String s, int i) {//有参构造方法this.s s;this.i i;}public 例题1Demo(String... strings) throws NumberF…

堆排序(小根堆模板)

输入一个长度为 n 的整数数列,从小到大输出前 m 小的数。 输入格式 第一行包含整数 n 和 m。 第二行包含 n 个整数,表示整数数列。 输出格式 共一行,包含 m 个整数,表示整数数列中前 m 小的数。 数据范围 1≤m≤n≤10^5&am…

Centos8上部署Zabbix5.0

1.关闭Selinux及防火墙,避免Web页面无法访问。 setenforce 0 vim /etc/selinux/config 修改“SELINUX”等号后的内容为disabled SELINUXdisabled\\关闭并关闭开机自启 systemctl stop firewalld systemctl disable firewalld 2.配置Centos8本地yum源。 mkdir /mn…

『MySQL快速上手』-⑦-内置函数

文章目录 1.日期函数1.1 获得年月日1.2 获得时分秒1.3 获得时间戳1.4 在日期的基础上加日期1.5 在日期的基础上减去时间1.6 计算两个日期之间相差多少天案例1案例22.字符串函数案例3.数学函数4.其他函数1.日期函数 1.1 获得年月日

基于Python美化图片亮度和噪点

支持添加噪点类型包括:添加高斯噪点、添加椒盐噪点、添加波动噪点、添加泊松噪点、添加周期性噪点、添加斑点噪点、添加相位噪点,还提供清除噪点的功能。 我们先看一下实测效果:(test.jpg为原图,new.jpg为添加后的图片…

Rust结构体的定义和实例化

1.结构体特点 Rust的结构体跟元组类型比较类似,它们都包含多个相关的值。和元组一样,结构体的每一部分可以是不同类型。但不同于元组,结构体需要命名各部分数据以便能清楚的表明其值的意义。由于有了这些名字,结构体比元组更灵活&#xff1a…

浅谈二叉树

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

【CUDA编程--编程模型简介算子开发流程】

官方文档:https://docs.nvidia.com/cuda/cuda-c-programming-guide/index.html 什么是CUDA CUDA全称(Compute Unified Device Architecture)统一计算架构,是NVIDIA推出的并行计算平台深度学习加速:对于神经网络&…

无线通信测量仪器-4945B/C 无线电通信综合测试仪

01 4945B/C 无线电通信综合测试仪 产品综述: 4945B/4945C无线电通信综合测试仪是多功能、便携式无线电综合测试类仪器,基于软件无线电架构,集成了跳频信号发生与分析、矢量信号发生与解调分析、模拟调制信号发生与解调分析、音频信号发生与…

C语言求数组中出现次数最多的元素

一、前言 遇到一个需求,需要求数组中出现次数最多的元素,查找了一些资料,结合自己的思路,编写了程序并验证。 只考虑元素为非负整数的数组,如果有出现次数相同的元素,则返回较小元素。 二、编程思路 以数…

python3+requests+unittest实战系列【二】

前言:上篇文章python3requestsunittest:接口自动化测试(一)已经介绍了基于unittest框架的实现接口自动化,但是也存在一些问题,比如最明显的测试数据和业务没有区分开,接口用例不便于管理等&…

AI主播“败走”双11,想用AI省成本的商家醒醒吧,程序员不必担心失业,发展空间依旧很大

目录 1 2 3 “AI人”并不算是新鲜事,随着AI的发展,AI主播也开始悄悄进入到直播间中。 持续无间断的直播、比人工费便宜等优势,让很多商家选择了AI主播。 AI主播到底好不好用?终于在今年“双11”现出了原形。 1 AI主播没火过半年…

Python常用插件之emoji表情插件的用法

目录 一、概述 二、安装 三、基本用法 四、高级用法 1、自定义emoji表情 2、使用表情符号列表 3、结合使用Emoji和输入文本 4、动态添加emoji表情 5、自定义Emoji的样式 总结 一、概述 在Python中,使用emoji表情已经成为了一种非常流行的趋势。许多开发者…

Linux Centos 根目录扩展分区(保级教程)

Centos 根目录扩展分区 1. 扩展背景2.列出磁盘信息3. 对磁盘进行分区4. 重启Linux5. 将PV加入卷组centos并分区6.查看分区结果 1. 扩展背景 虚拟机初始分配20G内存,扩容到80G。 2.列出磁盘信息 可以得知容量信息以及即将创建的PV路径(通常为“/dev/s…

tcpdump抓包的字节数量与ethtool统计数据不同的原因

情况介绍 在进行RDMA抓包流量分析时,我使用ethtool工具统计了RDMA网卡的流量发送数据数量,然后使用tcpdump进行抓包。 经过分析发现,tcpdump得到的数据数量总是大于ethtool得到的数据数量,而且每个数据包会多出4个字节。 分析 …

代码随想录算法训练营|五十一天

最长递增子序列 300. 最长递增子序列 - 力扣(LeetCode) 递推公式: 有点像双指针的操作,例如{2,5,6,4,3}(写不出来,画图) public class Solution {public int LengthOfLIS(int[] nums) {if (n…

如何计算掩膜图中多个封闭图形的面积

import cv2def calMaskArea(image,idx):mask cv2.inRange(image, idx, idx)contours, hierarchy cv2.findContours(mask, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)for contour in contours:area cv2.contourArea(contour)print("图形的面积为", area) image是…