git分支管理策略

2023-11-03

1  总览

git 的分支整体预览图如下:

从上图可以看到主要包含下面几个分支:

         master:git默认主分支(这里不作操作)。

         stable:稳定分支,替代master,主要用来版本发布。

         develop:日常开发分支,该分支正常保存了开发的最新代码。

         feature:具体的功能开发分支,只与 develop 分支交互。

         release:release 分支可以认为是 stable分支的未测试版。比如说某一期的功能全部开发完成,那么就将 develop 分支合并到 release分支,测试没有问题并且到了发布日期就合并到 stable分支,进行发布。

         bugfix:线上 bug 修复分支。
 

1.1  主分支

因为master分支我们不作操作,所以针对stable和develop这两个主分支来讲解。

             stable分支:用来发布,管理着多个稳定的版本。

             develop分支:就是我们日常开发的分支。

   使用这两个分支就具有了最简单的开发模式:develop 分支用来开发功能,开发完成并且测试没有问题后,则将 develop 分支的代码合并到 stable分支并发布。

在开发中如果我们只用主分支来进行管理,那么就会造成develop发布完成之后才能进行下一迭代的开发,开发会比较缓慢。如果线上代码发现bug之后,很难进行bug修复。

针对以上问题,建立辅助分支就能完美的解决。

1.2  辅助分支

辅助分支主要有一下几个:

                  1、feature分支。

                  2、release分支。

                  3、bugfix分支。

         通过这些分支,我们可以做到:团队成员之间并行开发,增加新功能更加容易,可以同时进行开发和版本发布、线上bug修复等。
 

1.2.1  feature分支

 feature 分支用来开发具体的功能,一般基于develop分支,最后完成功能后再合并到develop分支。

         比如,目前我们针对develop分支来做功能开发,在开发的过程中会有紧急需求需要开发,且在本次版本发布时间之前要能测试完成。我们可以基于之前稳定版本另开一个feature分支来做紧急需求的开发,发布并进行测试,完成之后再合并到develop分支上。

1.2.2  release分支

 release分支作为预发布分支,release 分支从 develop 分支 fork 出来,最终会合并到 develop 分支和 stable 分支,合并到 stable分支上就是可以发布的代码了。

       为什么我从develop分支fork出来,还要合并到develop分支中呢?因为我们在release分支上难免会有bug产生,修复bug也是在release分支上,所以必须要合并到develop分支。

1.2.3   bugfix分支

       bugfix 分支用来修复线上bug。当线上代码出现 bug 时,我们基于 stable 分支开一个bugfix分支,修复 bug之后再将 bugfix分支合并到stable分支并进行发布,同时develop 分支作为最新最全的代码分支,bugfix分支也需要合并到 develop 分支上去。

1.3   Tag标签

在我们用git做版本管理的时候,每次提交代码都会生成唯一标识本次提交的编码,对于这个编码我们直观的看是没有任何意义的。为了很好标识每个版本的变化,我们会在每个版本发布的同时打上一个tag,通常和版本名称相同。

       比如我们开发了V1.0、V1.1,不同的版本对应不同的代码,当我们在V1.1上面发现bug时,但并不确定V1.0是否存在bug,那我们怎么确认V1.0存在bug呢?怎么知道哪些提交的代码属于V1.0?此时tag就很有用了。我们在发布V1.0和V1.1这两个版本时,分别为这两个版本加上tag1.0和tag1.1,当我们需要验证V1.0是否存在bug时,切换到tag1.0上就可以验证了。
 

参考:

https://mr-dai.github.io/git-branching-model/

https://juejin.cn/post/6844903609461637134

https://juejin.cn/post/6967981728619544606

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

git分支管理策略 的相关文章

  • Git 中的“分支提示”是什么?

    我正在学习 Git 并阅读专业 Git 书籍 https git scm com book en v2 书中和 Stack Overflow 上有时会使用术语 分支提示 但我找不到它的含义 分支提示是分支上的最后一次提交或最近一次提交 基本
  • 如何在本地快速拉取拉取请求

    在合并拉取请求之前 我想在本地快速拉取请求并运行测试并测试一些内容 我还不想点击 gihub 合并拉取请求 我以为滑轮会有帮助http ejohn org blog pulley http ejohn org blog pulley 但我收
  • Git 中的合并冲突是由什么构成的?

    git 如何确定特定合并存在冲突以及冲突是什么 我的猜测是这样的 如果正在合并的两个提交有一个共同的父提交 并且如果它们都更改了父提交的 X 行 那就是冲突 让我的理解变得复杂的是 更改 X 行 可能意味着用几行新行替换它 但这仍然显示为一
  • 如何使用 vim 作为“git show”编辑器?

    全部如所述如何使用 vim 作为 git log 编辑器 https stackoverflow com questions 16666009 how do i use vim as git log editor不适用于 git show
  • 无法从我的电脑上使用 traefik 后面的 gitlab 进行 git 克隆

    这是我的 gitlab 和 traefik 配置 version 3 7 services gitlab web image gitlab gitlab ce latest restart always hostname gitlab ro
  • TeamCity 将功能分支推送到主分支

    有没有办法将成功构建的功能分支推送到另一个分支 我想要这样的东西 Git 存储库 Gitorious GitHub 等 分支机构 master 当前项目的代码 质量保证 代码等待 QA 的分支 功能分支 许多远程分支 开发人员可以在其中开发
  • 如何在Windows上分离“Git bash”中启动的“git gui”?

    例如 我开始 git bash 我导航到某个目录 I start git gui 我关闭控制台窗口或按 Ctrl C Git gui 的窗口消失了 即使我用过git gui disown 即使当我按 Ctrl C 时它不在前台 如何正确分离
  • Visual Studio Code 内置故事,用于查看 git 提交历史记录并对其内容进行比较

    In this https stackoverflow com questions 37899765 how can i view the git history in visual studio code 60013101 noredir
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 未能将一些参考推送至 [email protected]

    当我尝试推送到 Heroku 存储库时收到此错误 我已经设置了autocrlf false在gitconfig中 但这个问题仍然存在 我也尝试过这个解决方案here https stackoverflow com questions 566
  • 您的分支比“origin/master”领先 3 个提交

    我在运行时收到以下信息git status Your branch is ahead of origin master by 3 commits 我读过其他一些帖子 解决这个问题的方法是运行git pull rebase但是 rebase
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 为什么“git描述-dirty”在描述干净结帐时添加“-dirty”后缀?

    我刚刚发现 dirty选项git describe看起来它应该做一些非常有用的事情 即在输出中附加一个后缀git describe当工作树脏时 但是在我的一些存储库上似乎并非如此 git status On branch 8 30 noth
  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • 使用 TFS REST API 获取 Git 提交的最新关联工作项

    我正在尝试获取关联的工作项使用 TFS REST API 进行 GIT 提交 https www visualstudio com en us docs integrate api git commits 我的请求 URL 如下所示 htt
  • 尝试配置 GIT 时 Eclipse 没有响应

    Windows 10 专业版 64 位SSD金士顿 i5 4690Eclipse 版本 全部工作空间 空问题 每次我尝试配置 TEAM gt GIT gt 配置或尝试导入 创建本地 远程 git 时 Eclipse 都会冻结 直到我强制用任
  • 如何停用 Xcode git 功能? (删除 git 集成)

    我的 Xcode 项目位于 git 上 但我不喜欢 Xcode git 集成 有时 我有来自 Xcode 的错误 https stackoverflow com questions 7388560 error fatal not a git
  • Git 中的数据完整性?

    我现在已经多次听到提到 Git 提供数据完整性 但是 这是什么意思 据我所知 git 中的所有对象都是使用 SHA 1 校验和来访问的 并且该校验和是根据文件的内容计算的 这意味着如果文件发生更改 您将得到不同的校验和 但这如何提供数据完整
  • Smartgit:自动插入提交消息

    有没有办法使用钩子脚本在 Smartgit 中自动插入提交消息 重击 如果用户提交了他的更改 我想预加载提交消息字段 我没有看到任何SmartGit配置 http www syntevo com smartgit documentation

随机推荐

  • 复制代码到eclipse中出现问题

    1 直接从网页上复制代码到eclipse中时 会连带着将空格也复制进去 导致eclipse一片红 闪瞎脆弱的心 直接将把报错行代码前面的空格删除 错误自动可修复 2 在遇到大括号前后代码出现错误这样的问题时 显示的是Syntax error
  • Oracle Error : ORA-22835: Buffer too small for CLOB to CHAR or BLOB to RAW conversion (actual: 3000, maximum: 4000)

    author skate time 2008 02 25 最近在导数据的时候 提示如下错误 Oracle Error ORA 22835 Buffer too small for CLOB to CHAR or BLOB to RAW co
  • E4和C++ 开发-Unity 过度到 Unreal 4 对比参考详细

    1 两个编辑器的布局如下 1 1 unity 1 2 UE4 2 Editing Assets编辑资源 2 1 Detail面板就是负责编辑工程资源 类似于Unity里面的Inspector 3 两个引擎的部分术语对比 4 Projects
  • miui秒解bl锁_MIUI12解锁bl篇(原谅我的过失,接上篇文章)

    求原谅 真心求原谅 由于我的疏忽 上期教程不完整 对大家造成不便在这里给大家真诚道歉 对不起 请收下我的膝盖 我的上个教程 小米手机MIUI系统降级任意版本通用教程 MIUI12 MIUI9 因为需要接受bl才可以顺利使用miflash刷机
  • objective c 字符串各种处理

    关于字符串的各种操作 总结一下以便以后复习查找 内容简要 1 创建常量字符串 2 创建空字符串 给予赋值 3 在以上方法中 提升速度 initWithString方法 4 用标准c创建字符串 initWithCString方法 5 创建格式
  • 系统架构设计师之系统设计-面向对象设计-设计模式的分类

    系统架构设计师之系统设计 面向对象设计 设计模式的分类
  • unity学习之URP多相机以及多通道渲染

    默认已经创建好一个URP工程 不知道怎么创建可以看这里 摄像机堆叠 摄像机堆叠允许将多个摄像机的结果合成在一起 摄像机堆叠由一个基础 Base 摄像机和任意数量的额外叠加 Overlay 摄像机组成 当摄像机堆叠中的多个摄像机渲染到同一个渲
  • 16进制颜色代码

    16 进制颜色代码 16 进制颜色代码颜色的组成方式 16进制代码 前二位代表R值 中间二位代表G 末二位代表B 即前两位表示红色 中间两位表示绿色 最后两位表示蓝色 以0 1 2 3 4 5 6 7 8 9 A B C D E F共16位
  • 高云FPGA系列教程(2):FPGA点灯工程创建、程序下载和固化

    文章目录 toc 1 工程目录创建 2 新建工程 3 设计输入 4 设计仿真 5 综合 6 管脚分配 7 时钟约束 8 比特流文件生成 9 程序下载 10 程序固化 11 总结 12 工程下载 本文是高云FPGA系列教程的第2篇文章 介绍完
  • 产业大数据应用:洞察区域产业实况,把握区域经济脉搏

    随着新一代信息技术的崛起 我们进入了大数据时代 在这个时代 数据作为基本生产要素不仅改变着我们的日常生活 更是在区域产业经济发展中扮演着重要角色 它赋予了政府 企业和投资者敏锐的洞察力 一 摸清区域经济现状 基于区域产业经济数据的收集及导入
  • Halcon-表面检测-----裂纹检测

    对应示例程序 detect mura defects blur hdev 目标 实例实现LCD上有很多污点干扰下 检测LCD的印痕检测 思路为 对LCD图像进行拆分 提取RGB三个分量 对B分量进行处理 将其转换为频域内图像 并对其进行高斯
  • 数据分析行业,主要有哪些基本职位,具体的职责是什么?

    1 数据跟踪员 机械拷贝看到的数据 很少处理数据 虽然这个工作的人还不能称作数据分析师 但是往往作这样工作的人还都自称是数据分析师 这样的人 只能通过 系统看到有限的数据 并且很少去处理数据 甚至不理解数据的由来和含义 只是机械的把自己看到
  • 21届毕业生,想做软件测试,没工作经验而且已经毕业,怎么找软件测试工作?

    如果说你是上面现状去找软件测试工作 而且居然还找到了 那么可能会是如下几种情况 1 该公司对软件质量要求很低 随便来个会点点点的 能够检查功能是否正常即可 毕竟我是真遇到过一个CEO说 软件测试很难吗 我都能测试啊 没必要找测试人员 开发完
  • 不对等的爱情该不该放弃

    刚好两个人对爱情都有勇气全力以赴是多么难得的巧合 每个人都有自己的过往 我期望我们在最适当的时候相遇 一个投入的人碰上一个疏离的人 结局必定黯然 下一次 我希望我们相遇的时间会好一点 爱情经常出现一种奇怪的模式 你很用力的去爱一个人 对方却
  • jmeter JDBC request提示“Cannot convert value '0000-00-00 00:00:00' from column 6 to TIMESTAMP.”

    在学习jmeter数据库相关的过程中 在请求数据库时报错 Cannot convert value 0000 00 00 00 00 00 from column 6 to TIMESTAMP 解决方法 更改连接数据库方式 在连接 jdbc
  • C++基础入门教程

    1 C 初识 1 1 第一个C 程序 编写一个C 程序总共分为4个步骤 创建项目 创建文件 编写代码 运行程序 1 1 1 创建项目 Visual Studio是我们用来编写C 程序的主要工具 我们先将它打开 1 1 2 创建文件 右键源文
  • 获取本地硬盘信息

    using System using System Runtime InteropServices using System Text namespace driverId Serializable public struct HardDi
  • JS-语法进阶

    JS 语法进阶 三元运算符 类数组对象
  • 蓝桥杯 51单片机 AT24C02

    工作电压为1 8v 6v 第7引脚 WP 接地时允许正常读写 24C02设备地址包括固定部分和可编程部分 编程部分由A2 A1 A0三个硬件引脚来控制 设备地址最后一位用于设置数据传输方向 读 写 在IIC总线协议中 设备地址是起始信号后第
  • git分支管理策略

    1 总览 git 的分支整体预览图如下 从上图可以看到主要包含下面几个分支 master git默认主分支 这里不作操作 stable 稳定分支 替代master 主要用来版本发布 develop 日常开发分支 该分支正常保存了开发的最新代