Git分支模型(master/hotfix/develop/feature/release)

2023-05-16

1.分支管理

1.1 总览(一张流程图给大家先镇镇惊)

 

两种核心分支

主分支(Master):代码库应该有一个、且仅有一个主分支。所有提供给用户使用的正式版本,都在这个主分支上发布。这个分支只能从其它分支合并,不能在这个分支上直接修改。需要注意的是,所有在master上的提交应该标记tag。

开发主分支(Develop):这个分支是我们是我们的主开发分支,包含所有要发布到下一个Release的代码,这个主要合并与其他分支,比如Feature分支。该分支应该只是进行一些优化和升级开发,如果有新的需求应该拉出一个feature分支。

三种临时分支

功能(feature)分支:这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支进入下一个Release。

预发布(release)分支:当你需要一个发布一个新Release的时候,我们基于Develop分支创建一个Release分支,完成Release后,我们合并到Master和Develop分支。

修补bug(hotfix)分支:当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回Master和Develop分支,所以Hotfix的改动会进入下一个Release。

这三种分支都属于临时性需要,使用完以后,应该删除,使得代码库的常设分支始终只有master和develop。

Git Flow流程示例代码

1,创建develop分支

#从master拉出develop分支

#可选,获取最新版本。git pull origin master

git checkout -b develop master

#发布develop分支

git push -u origin develop

2,创建feature分支

#从develop拉出feature_v1.0功能分支

#可选,获取最新版本。git pull origin develop

git checkout -b feature_v1.0 develop

#发布feature_v1.0分支

git push -u origin feature_v1.0

#在feature_v1.0上开发一些功能

3,完成feature,合并到develop分支

#develop分支获取最新

git pull origin develop

#切换到develop分支

git checkout develop

#从feature分支合并到develop分支

git merge --no-ff feature_v1.0

#删除feature分支,也可以不删除

git branch -d feature_v1.0

4,开始release

#从develop拉出一个release分支

#可选,获取最新版本。

git pull origin develop

git checkout -b release_v1.0 develop

#fix bugs

5,完成release,合并到master分支和develop分支,在master打上tag标记

#合并到master

git checkout master

git merge --no-ff release_v1.0

#在master打tag标记

git tag release1.0 master

git push --tags

#合并到develop

git checkout develop

git merge --no-ff release_v1.0

6,开始hotfix

#从主线master拉出一个hotfix分支

#可选,获取最新版本。

git pull origin master

git checkout -b hotfix_v1.0.1 master

7,完成hotfix,合并到master和develop,并在master上打tag。

#合并hotfix_v1.0.1到master

git checkout master

git merge --no-ff hotfix_v1.0.1

#在master打上tag

git tag hotfix1.0.1 master

git push --tags

#合并hotfix_v1.0.1到develop

git checkout develop

git merge --no-ff hotfix_v1.0.1

Git Flow工具

1,SourceTree

2,GitFlow for Visual Studio 

分支命名规范

feature分支:以"feature_"开头,如feature_v1.1

release分支:以"release_"开头,如release_v1.1

hotfix分支:以"hotfix_"开头,如hotfix_20160112

tag标记:如果是release分支合并,则以"release_"开头。如果是hotfix分支合并,则以"hotfix_"开头。

master分支每次提交都要打tag,release tag:如release_v1.1,hotfix tag:如hotfix_20160112

命名都统一采用小写。

总结

1,一定要按git flow的流程去管理分支,如feature分支开发完要合并到develop,如果要发布版本到test环境,则从develop拉出一个release分支,release完成后要合并回master和develop分支,修复生产环境问题需要从master拉出一个hotfix分支,hotfix完成后要合并回master和develop分支,并且在master打上tag。

2,一定要按分支命名规范来命名,便于管理和维护。

3,了解了git flow工作流程后,可以不使用git flow GUI工具,手动操作即可,可以是原生git命令+vs配合操作,比如给master打tag就要用git命令,这在vs里操作不了的,比如合并分支,虽然也可以使用git命令实现,但在vs里操作更方便直观。

4,一定要保持分支的纯净,不要随便污染分支。比如,develop分支只包含要发布到下一个release的代码,在没有拉出release分支前不要合并新的feature分支进来。release分支基于develop分支创建,拉出release分支后,我们可以在这个release分支上测试和修复bug,但是,一旦打了release分支后不要从develop分支合并新的改动过来。develop拉出release分支的同时,也意味着develop分支可以开始下一个release的准备工作了。

5,如果多个版本并行到test环境,怎么解决这个问题?如下图。


————————————————
版权声明:本文为CSDN博主「柯雨恒」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42628941/article/details/113413760

 

 

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

Git分支模型(master/hotfix/develop/feature/release) 的相关文章

  • Linux安装最新版Nginx,配置解析php(centos7)

    文章目录 Nginx介绍一 安装编译工具及库文件二 安装PCRE xff0c 作用是让Nginx支持Rewrite功能三 安装Nginx四 测试Nginx五 Nginx常用命令六 安装PHP xff0c 配置nginx解析php Nginx
  • yum安装软件,提示没有可用的软件包解决方法(Centos 7、Centos8)

    文章目录 一 问题描述 xff08 以nginx为例 xff09 二 解决的方法 xff1a 安装epel release软件包三 EPEL简介 一 问题描述 xff08 以nginx为例 xff09 Centos 7下安装nginx xf
  • linux安装zabbix4,添加监测客户机(centos7)(一)

    文章目录 一 linux系统配置二 yum安装zabbix server三 配置zabbinx server四 登陆zabbix server xff0c 设置中文语言五 被监控客户端部署zabbix agent六 添加被监测客户机 软件版
  • linux安装使用git(centos7、centos8)

    文章目录 一 Git简介二 安装Git三 Git全局配置四 创建Git本地仓库五 Git版本回退 一 Git简介 Git是分布式版本控制系统 xff0c svn是集中式 集中式VS分布式 xff1a 集中式版本控制系统 xff0c 版本库集
  • 搜索和下载英文文献常用的网站

    最近导师要求对我们的研究课题进行一个综述整理以及ppt展示 xff0c 中文文献可以到知网上去查找 xff0c 不过知网上的外国文献基本上都很滞后 xff0c 无法拿来作为参考 xff0c 所以就滋生了对于国外期刊和会议论文的需求 搜索以下
  • zabbix监控方式(agent)(二)

    一 zabbix agent方式 xff08 被动模式 xff09 1 被动模式工作流程 xff1a zabbix server打开一个tcp连接 xff1b zabbix server放送一个key为agent ping n的请求 xff
  • MakBookAir系统(macOS Mojave10.14.2)安装双系统方法(win10)

    掉过的坑 1 W官网下载的64位ISO镜像内 xff0c 镜像解压后包含的单个文件大于4G xff0c 当使用BootCamp助理写入U盘时 xff08 U盘会被格式成FAT32 xff0c 不支持大于4G的单个文件拷贝 xff09 xff
  • SUMO文档016:XML文件验证

    XMLValidation xff08 XML验证 xff09 1 XML输入的验证 所有的SUMO应用程序都支持对输入的XML验证 为了实现功能 xff0c 以下的选项可以使用 xff1a Option Description X lt
  • SUMO应用工具:SUMO-GUI

    1 概览 sumo gui和sumo有着相同的功能 xff0c 仅仅是拥有图形化的界面 目的 xff1a 仿真一个特定的脚本 系统 xff1a 在Linux windows上测试过 xff0c 打开一个窗口 输入 xff1a sumo的配置
  • SUMO应用工具:DUAROUTER

    DUAROUTER 作者注 xff1a 原文链接 xff1a http sumo dlr de wiki DUAROUTER 1 简介 DAUrouter导入不同的需求定义 xff0c sumo计算车辆的路径得到最短的计算路径 当调用DUA
  • SUMO文档补充:OSMWebWizard

    Tutorials OSMWebWizard 原文地址 xff1a http sumo dlr de wiki Tutorials OSMWebWizard 1 简介 OSM Web Wizard 是开始sumo最简单的方式 可以选取区域进
  • SUMO文档:有关需求建模(Demand Modelling)

    Demand Introduction to demand modelling in SUMO 在生成了路网后 xff0c 我们可以在sumo gui上查看 xff0c 但是路网上并没有车辆运行 我们还需要一些有关车辆的描述 我们称之为 交
  • SUMO文档028:来源于观测点的路径

    Demand Routes from Observation Points 原文链接 xff1a http sumo dlr de wiki Demand Routes from Observation Points 自从0 9 5开始 x
  • 深度学习框架下群组行为识别算法综述

    源自 xff1a 电子学报 作者 xff1a 邓海刚 王传旭 李成伟 林晓萌 摘 要 群组行为识别目前是计算机视觉领域的一个研究热点 xff0c 在智能安防监控 社会角色理解和体育运动视频分析等方面具有广泛的应用价值 本文主要针对基于深度学
  • pci和pcie的区别

    原文地址 xff1a https blog csdn net u013253075 article details 80835489 最近在学习驱动开发过程中涉及到PCI相关知识 xff0c 在网上看了很多文章 xff0c 良莠不齐 xff
  • 一文道尽softmax loss及其变种

    1 softmax loss softmax loss是我们最熟悉的loss之一 xff0c 在图像分类和分割任务中都被广泛使用 Softmax loss是由softmax和交叉熵 cross entropy loss loss组合而成 x
  • 十大经典排序算法

    原文地址 xff1a 一文搞掂十大经典排序算法 不才伟才的博客 CSDN博客 一文搞掂十大经典排序算法 今天整理一下十大经典排序算法 1 冒泡排序 越小的元素会经由交换慢慢 浮 到数列的顶端 算法演示 算法步骤 比较相邻的元素 如果第一个比
  • ubuntu 更新阿里源

    原文地址 xff1a https www cnblogs com moyu557 p 10710689 html 查看新版本信息 lsb release c Ubuntu 12 04 LTS 代号为precise Ubuntu 14 04
  • 旋转编码器工作原理

    原文地址 xff1a https blog csdn net weixin 42562514 article details 89435902 一 旋转编码器的原理和特点 xff1a 旋转编码器是集光机电技术于一体的速度位移传感器 当旋转编
  • the read modes of FPGA FIFO —FWFT and Standard

    1 FWFT first word fall through 模式 xff1a 当rd en由低跳变到高电平时候 xff0c FIFO读出的数据FIFO dout 立即读出来 2 Standard 标准模式 xff1a 当rd en由低跳变

随机推荐

  • gdb x 命令详解

    gt examine命令 x xff1a 查看内存地址中的值 格式 xff1a x lt n f u gt lt addr gt n 是正整数 xff0c 表示需要显示的内存单元的个数 xff0c 即从当前地址向后显示n个内存单元的内容 x
  • 什么是奇偶校验

    校验依据 xff1a 判断传输的一组二进制数据中 34 1 34 的个数是奇数还是偶数 奇校验 xff1a 如果以二进制数据中1的个数是奇数为依据 xff0c 则是奇校验 偶校验 xff1a 如果以二进制数据中1的个数是偶数为依据 xff0
  • linux reboot,卡在“restarting system”

    原因 xff1a 产生这个bug的原因比较多 xff0c 百度一般不好找寻答案 xff0c 建议个位去谷歌 待研究 解决办法 xff1a 在谷歌上提交问题 xff0c 运气好有老外回答 本人就走了一次运 待研究 遇到同样问题的小伙伴可以私信
  • linux多线程调用同一个函数解析

    原文地址 xff1a http blog csdn net mq ydn3102 article details 8546722 问题背景 xff1a 在工作中遇到过一个问题 xff0c 就是在两个线程同时调用同一个函数的时候 xff0c
  • mac地址真的是全球是唯一的吗

    问题 xff1a mac地址真的是全球是唯一的吗 答 xff1a 不是 mac地址在百科中的描述如下 xff1a MAC xff08 Media Access Control xff0c 介质访问控制 xff09 地址 xff0c 也叫硬件
  • linux apt-get安装和卸载命令

    apt get update 更新安装列表 apt get upgrade 升级软件 apt get install software name 安装软件 apt get purge remove software name 卸载软件及其配
  • VMware12安装centOS8(vm虚拟机安装centos8教程)

    VMware12安装centOS8 xff08 vm虚拟机安装centos8教程 xff09 前几天Centos8发布了 xff0c 尽管他是8的第一个版本 xff0c 那么今天我们就在VM12上面安装centOS8吧 xff0c 8这个图
  • linux 7z压缩、解压命令

    原文地址 xff1a https blog csdn net jk110333 article details 7829879 支持 7Z ZIP Zip64 CAB RAR ARJ GZIP BZIP2 TAR CPIO RPM ISO
  • bat脚本中怎么注释命令行

    注释内容 按行注释REM 注释时 xff0c sh不执行后面的语句 xff0c 但是会显示 注释内容 按行注释 注意引用bat变量也是 xff0c 容易混淆 xff1a 注释内容 注意注释文本不能与已有标签重名 xff0c 因为 xff1a
  • C语言常见面试问题

    说一下 static 关键字的作用 static用于修改变量或函数的链接属性 xff0c 从外部链接属性变为内部链接属性 xff0c 变量或函数只能在当前文件访问 对于代码块内部的变量声明 xff0c static用于改变变量的存储属性 x
  • 关于CPU的12个硬核干货!

    作为一名程序员 xff0c 与计算机打交道的日子不计其数 xff0c 不管你玩硬件还是做软件 xff0c 你的世界自然都少不了计算机最核心的 CPU 01 CPU是什么 xff1f CPU与计算机的关系就相当于大脑和人的关系 xff0c 它
  • C语言typedef关键字及其使用

    在C语言中有一个typedef关键字 xff0c 其用来定义用户自定义类型 当然 xff0c 并不是真的创造了一种数据类型 xff0c 而是给已有的或者符合型的以及复杂的数据类型取一个我们自己更容易理解的别名 总之 xff0c 可以使用ty
  • 内存中堆的基本概念

    一 什么是堆 xff1f C语言堆是由malloc calloc realloc 等函数动态获取内存的一种机制 使用完成后 xff0c 由程序员调用free 等函数进行释放 使用时 xff0c 需要包含stdlib h头文件 C 43 43
  • C#可以做什么

    C xff08 C Sharp xff09 是Microsoft的新编程语言 xff0c 被誉为 C C 43 43 家族中第一种面向组件的语言 然而 xff0c 许多人认为C 更像是Java的一种克隆 xff0c 或者是Microsoft
  • 计算机术语中的"透明"

    计算机中术语透明性是什么意思 xff1f 一 透明性 xff08 transparency xff09 定义 xff1a 在通信网中 xff0c 不改变信号形式和信息内容的端到端传输 二 透明性现象 xff1a 在计算机技术中 xff0c
  • 编辑器、编译器与集成开发环境(IDE)的区别

    一 编辑器 编辑器的概念很简单 xff0c 百度百科上这么写道 xff1a 编辑器是软件程序 xff0c 一般是指用来修改电脑档案的编写软件 xff0c 但也有人称 PE2 HE4 xff08 汉书 xff09 等文书软件为编辑器 常见的编
  • C语言中的*p1++=*p2++

    例 xff1a 把一个数组的内容复制给另一个数组 define SIZE 50 int x SIZE int y SIZE int p1 p2 void try2 for p1 61 x p2 61 y p1 x lt SIZE p1 43
  • 关于Ctrl+R(reverse-search-history)的反向搜索 —— forward-search-history的快捷键

    Ctrl 43 R执行的是reverse search history xff0c 通过Ctrl 43 R可以根据关键字搜索历史命令 xff0c 按多次Ctrl 43 R可以继续搜索更旧的历史命令 xff0c 但有时按快了多按了一次Ctrl
  • C++ 指针的引用和指向引用的指针

    指针即地址 引用即别名 所谓引用 xff1a 它只是为存在的对象所起的另外一个名字 它不是一个对象 xff0c 没有实际的地址 引用的声明方法 xff1a 类型标识符 amp 引用名 61 目标变量名 如下 xff1a 定义引用 ra xf
  • Git分支模型(master/hotfix/develop/feature/release)

    1 分支管理 1 1 总览 一张流程图给大家先镇镇惊 两种核心分支 主分支 Master xff1a 代码库应该有一个 且仅有一个主分支 所有提供给用户使用的正式版本 xff0c 都在这个主分支上发布 这个分支只能从其它分支合并 xff0c