Git的Flow工作流分享

2023-11-09

最近我们团队对日常开发规范和版本控制等工作进行了调整,为此对GitFlow工作流以及它的各类变种也进行了学习,在此记录一下。

只有一个Master分支带来的问题

首先我们回顾一下我们在日常与团队的合作开发一个项目中会遇到与版本控制相关的场景。
一般我们在创建一个Git仓库的时候会有一个默认的主分支 master分支,默认情况下我们所有的开发工作(提交、合并。。)都在这个主分支上,也确实存在许多的团队就在一个master分支上进行所有的开发活动。
那么如果只有一个master分支会有哪些问题?

(1)场景一:当我们正在开发新的功能的时候,经理要求紧急上线一个版本

(2)场景二:已经上线的版本存在Bug,需要紧急修复,但是目前正在进行新功能开发。

显然如果我们只有一个master分支,所有的版本发布、Bug修复、新功能开发都在一个分支上开发,我们将会遇到许多问题,master分支上将同时存在正在开发中的代码、已经开发完但未经测试的代码、存在Bug的Tag版本等等一个比较混乱的情况。
如果此时想要发布一个版本,我们必须从众多的的提交记录中找到一个最近但经过测试的TAG去发布,但是我们修复Bug的提交可能不在这个TAG之前。。。。。

GitFlow解决问题的方式

GitFlow工作流如何通过多个分支解决 随时发版、线上Bug解决、新功能同步开发等我们工作中经常遇到的问题?
一个典型的GitFlow工作流会包括 master、develop、release、以及feature分支
master分支是一个受到严格控制的主分支,所有的代码在提交到master直接必须受到检查,确保master上的代码是功能完整、经过测试并随时可以进行版本发布的。

develop分支develop是开发分支,是所有分支中代码最完整、最新的分支,确保所有的提交都会在develop分支中存在,在开发新功能时我们从develop分支上创建一个feature分支专门进行某一个功能的开发,当该功能完成后合并到develop分支此feature分支也会被删除。

release分支是版本发布分支,会存在 V1.0.1-release,V1.0.2-release。。。等众多release分支,每个release分支都是从master分支上创建而来。

bugfix可以用来针对release分支进行Bug修复,属于临时分支,当修复了某个发布版本的Bug后,需要同时将代码合并到master和develop分支上。

。。。待续图表整理

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git的Flow工作流分享 的相关文章

  • 无尽神域服务器维护,关于对无尽神域的感受亲爱的无尽神域开发团队:

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 关于对无尽神域的感受 亲爱的无尽神域开发团队 你们好 我是一位无尽神域的普通玩家 首先感谢你们能开发出这么一款我个人认为的优质游戏 从公测到现在玩的这十几天了 好的体验有很多 也有些希望开发团队
  • 我从未结束的Java之旅

    目录 开篇 毕业 第一份工作的结束 大胆北漂 第一次在北京租房 供应链 新的开始 好景不长 餐饮 误打误撞 线上事故 事故原因 复盘 开篇 简单的做个自我介绍 码龄九年 主要从事java开发 对前端和python略有了解 是一个技术不精湛但
  • C#位运算相关知识梳理

    位和字节的介绍 位 b 也叫比特位 是计算机数据最小的单位 用二进制0和1来存储 字节 byte 1 byte 8 b 一个字节 8位 字符 char 1 char 2byte 16b 1个字符 2 个字节 16位 KB 1KB 1024b
  • 最新信息安全毕设选题题目推荐

    0 简介 毕业季马上就要开始了 不少同学询问学长网安专业选题以及开题相关的问题 今天跟大家分享信息安全毕设选题 最新的信息安全 网络安全 专业毕设选题 难度适中 适合作为毕业设计 大家参考 学长整理的题目标准 相对容易 工作量达标 题目新颖
  • linux视频教程

    这15 张光盘最为值得推荐的是国嵌的视频教程 其中的一些wince资料以及中嵌的视频教程也比较适合初学者 国嵌视频教程由嵌入式Linux专业培训机构成都国嵌公司免费提供的4个培训班完整最新视频 总共包含4张DVD光盘 76个视频文件 总时长
  • VC++6.0的兼容性问题解决方案

    VC6 0 能够在 XP 下很好的运行 无需进行额外的设置 但在 Win7 Win8 和 Win10 下 安装完成后还要修改兼容模式才可以 在Win7或Win10下使用VC6 0 对于Win7和Win10 需要将VC6 0的兼容模式修改为
  • Jupyter Notebook查看文件

    Jupyter Notebook查看文件 打开dos 输入Jupyter Notebook 打开dos 切换到ipynb文件所在路径下 输入Jupyter Notebook Jupyter Notebook 看到图片都丢失了 返回上一级的目
  • WSL——Kali子系统安装及其相关配置

    Kali子系统安装及其相关配置 一 WSL简介 二 开启WSL功能 三 安装kali子系统 四 安装Windows Terminal 五 对Kali的设置 1 更换更新源 2 安装完整版Kali 六 配置图形化桌面并连接 1 下载 X410
  • mac下编译安装php7.4.5及相关扩展安装

    php7 4 5下载地址 https www php net distributions php 7 4 5 tar gz MAC版本 macOS catalina 10 15 4 编译参数 configure prefix Users m
  • 【ML】对数据处理的几种方法

    数据处理的几种方式 1 All in 2 Backward Elimination 后退梯度 3 Forward Elimination 前进梯度 4 Bidirectional Elimination 比较梯度 5 Score Compa
  • gin框架27--自定义 HTTP 配置

    gin框架27 自定义 HTTP 配置 介绍 案例 说明 介绍 本文主要介绍如何自定义HTTP配置 在gin框架中可以直接使用 http ListenAndServe 来实现 案例 源码 package main import github
  • react中,useState异步更新带来的问题,怎么解决

    React 的 useState 是异步更新状态的 但是有时候我们需要在状态更新后执行一些操作 如果直接使用 setState 可能会导致状态的更新不及时 此时可以使用以下几种解决方案 使用 useEffect 来监听状态的变化 并在其中执
  • WeOpen Good 开源公益计划正式启动!聚开源智慧·行科技向善

    PART 1 缘起和初心 8 15 20 当看到这些数字 你第一时间会想到什么 少 不足一提 亦或是什么呢 1 我们生活的地球上 有超过 70 亿人口 其中 10 亿以上的人 也就是相当于总人口约 15 的人有某种形式的残疾 2 世界范围内
  • linux的自旋锁struct spinlock_t的使用

    在linux中提供了一些机制用来避免竞争条件 最简单的一个种就是自旋锁 例如 当一个临界区的数据在多个函数之间被调用时 为了保护数据不被破坏 可以采用spinlock来保护临界区的数据 当然还有一个就是信号量也是可以实现临界区数据的保护的
  • 直接把软件界面做成游戏界面。CEGUI 专用游戏界面开发库。

    下载 http www cegui org uk wiki index php Downloads 更多中文教程 http www ispinel com 2010 05 26 971 首先感谢李素颙同学的热心和耐心指导 做游戏或者计算机图
  • 对应用数据开发还有疑惑?看这篇就够了!数据存储、管理,通通掌握!

    原文 对应用数据开发还有疑惑 看这篇就够了 数据存储 管理 通通掌握 点击链接查看更多技术内容 数据管理可以做什么 应用数据的持久化怎么实现 如何实现数据库加密 在开发应用进行应用数据的处理时 您是否也会有这些疑问呢 现在 我们推出了更为清
  • Access Token(访问令牌)学习

    Access Token 访问令牌 是一种用于身份验证和授权的令牌 在软件开发中 访问令牌通常用于访问受限资源或执行特定操作 Access Token 通常由身份验证服务器颁发 以授权客户端应用程序代表用户访问受保护的资源 当用户进行身份验
  • opencv笔记之--图片模糊操作和锐化操作

    一 模糊操作 usr bin env python coding utf 8 import cv2 as cv import numpy as np def blur demo image dst cv blur image 15 1 cv

随机推荐

  • go换源

    Windows 版本 SETX GO111MODULE on go env w GOPROXY https goproxy cn direct SETX GOPROXY https goproxy cn direct Linux 版本 ec
  • 部署Zabbix企业级分布式监控

    1 定义 1 1 监控定义 通过一个友好的界面进行浏览整个网站所有的服务器状态 可以在Web前端方便的查看监控数据 可以回溯寻找事故发生时系统的问题和报警情况 分类 传统 zabbix nagois 云原生 prometheus 1 2 z
  • 基于tcpdump实例讲解TCP/IP协议

    前言 虽然网络编程的socket大家很多都会操作 但是很多还是不熟悉socket编程中 底层TCP IP协议的交互过程 本文会一个简单的客户端程序和服务端程序的交互过程 使用tcpdump抓包 实例讲解客户端和服务端的TCP IP交互细节
  • 【深度】谭铁牛院士谈人工智能发展新动态

    来源 Frontiers 11月25日 模式识别与人工智能学科前沿研讨会在自动化所召开 会上 谭铁牛院士做 人工智能新动态 报告 回顾了近代以来历次科技革命及其广泛影响 并根据科学技术发展的客观规律解释了当前人工智能备受关注的深层原因 报告
  • Git工作流程:如何在团队中协作?

    前言 作者主页 雪碧有白泡泡 个人网站 雪碧的个人网站 推荐专栏 java一站式服务 前端炫酷代码分享 uniapp 从构建到提升 从0到英雄 vue成神之路 解决算法 一个专栏就够了 架构咱们从0说 数据流通的精妙之道 文章目录 前言 G
  • 《Happy Birthday》游戏开发记录(送给朋友的小礼物)

    游戏开发的学习记录 项目 Happy Birthday 一个小小小游戏 基于unity给朋友做的一个生日小礼物 之前都是礼物加信 今年想用自己的技能 把信的内容以另一种方式送给她 但在做这个的时候 也学到一些新的东西 所以把这个也记录下来了
  • ieee-explore/springer文献免费下载办法

    http ieeexplore ieee org document xxxxxxx 改为 http ieeexplore ieee org sci hub tw document xxxxxxx 即可免费下载 是哈萨克斯坦女黑客搞的 见下文
  • 一文带你看懂 MySQL 存储引擎

    本文目录 1 MySQL体系结构 2 存储引擎介绍 3 MySQL 存储引擎特性 4 MySQL 有哪些存储引擎 5 了解 MySQL 数据存储方式 6 MySQL存储引擎介绍 6 1 CSV存储引擎 6 1 1 CSV介绍 6 1 2 使
  • c++中的list容器讲解

    文章目录 1 list的介绍及使用 1 1 list的介绍 1 2 list的使用 1 2 1 list的构造 1 2 2 list iterator的使用 1 2 3 list capacity 1 2 4 list element ac
  • vscode python3安装 xlwt_python EXCEL自动化办公(一)xlrd、xlwt、xlsxwriter安装过程

    目前在python中实现EXCEL办公自动化过程中 经常用到两个包 xlrd和xlwt 在某些博主或者资料中指出xlwt有bug 目前不清楚是否被修复 我们这里保险起见 再安装另一个包xlsxwriter 其中xlrd作为excel读取 x
  • IDEA访问不了官网?看过来!(超详!超细!)

    IDEA访问不了官网 显示 无法访问此网址 超详细 导语 IDEA访问不了 话不多说 实战为主 作者 变优秀的小白 Github YX XiaoBai 爱好 Americano More Ice QQ交流群 new 811792998 注
  • 算法学习 day23

    669 修剪二叉搜索树 给你二叉搜索树的根节点 root 同时给定最小边界low 和最大边界 high 通过修剪二叉搜索树 使得所有节点的值在 low high 中 修剪树 不应该 改变保留在树中的元素的相对结构 即 如果没有被移除 原有的
  • 什么是包?导包的机制

    目录 小白眼中的包 Java包的定义 小白眼中的包 书包 钱包 水桶包都是包 根据盛放东西的区别而划分了不同的种类 盛书的叫书包 盛钱的叫钱包 盛日常出行必备品的桶装包叫水桶包 由此推导 包是盛纳物品的容器 Java包的定义 Java包指的
  • idea中配置连接多个数据库

    要在一个项目中连接如下两个数据库 yml中配置两个不同数据库 master datasource username root password url jdbc mysql localhost 3306 study useUnicode t
  • 基于OpenCV的视频道路车道检测

    基于OpenCV的视频道路车道检测 前言 综述 运行方法 车道检测的实现 路面图像二值化 基于透视变换提取车道区域 基于二次多项式拟合车道线 基于二次多项式拟合车道线 计算曲率半径与车辆的偏移距离 用车道区域标注原始图像 总结 前言 本篇博
  • [CVPR-17] Focal Loss for Dense Object Detection

    目录 摘要 Introduction Focal Loss Focal Loss Definition RetinaNet FPN Anchors 推理 Focal Loss 摘要 在训练密集detectors时 前景 背景极度不平衡是on
  • STL源码剖析(五)——关联式容器

    1 概览 所谓关联式容器 观念上类似于关联式数据库 每笔数据都有一个键值 key 和实值 value 当元素被插入到关联式容器中 容器内部结构 可能是红黑树和哈希表 便依照键值大小 以某种特定规则将这个元素放置在适当位置 关联式容器没有所谓
  • WEB开发技术期末复习

    The content comes from teacher courseware 第一章 信息系统与java企业级规范 一 信息系统的类型 1 单机系统 单机系统的特点 数据显示 数据处理 数据存储在同一台计算机上进行 数据显示一般为图形
  • Illegal mix of collations ((latin1_swedish_ci,IMPLICIT) and (gbk_chinese_ci,COERCIBLE) for报错

    Illegal mix of collations latin1 swedish ci IMPLICIT and gbk chinese ci COERCIBLE for operation 查看了数据库发现是建表时设置表的编码为latin
  • Git的Flow工作流分享

    最近我们团队对日常开发规范和版本控制等工作进行了调整 为此对GitFlow工作流以及它的各类变种也进行了学习 在此记录一下 只有一个Master分支带来的问题 首先我们回顾一下我们在日常与团队的合作开发一个项目中会遇到与版本控制相关的场景