git分支-分支工作流

news2024/12/25 1:18:10

分支工作流

现在已经掌握了分支和合并的基础知识,可以或应该如何使用它们?在本节中,我们将介绍一些常见的工作流程,这种轻量级的分支使得这些工作流程成为可能,因此我们可以决定是否要将它们纳入到自己的开发周期中。

长期运行的分支

由于Git使用简单的三路合并,因此在长时间内多次从一个分支合并到另一个分支通常很容易。这意味着可以拥有几个始终开放的分支,用于开发周期的不同阶段;可以定期将其中一些分支合并到其他分支中。

许多Git开发人员采用这种方法的工作流程,例如,在他们的主分支中只有完全稳定的代码 - 可能只有已经发布或将要发布的代码。他们有另一个名为develop或next的平行分支,从中进行工作或用于测试稳定性 - 它不一定总是稳定的,但每当它达到稳定状态时,就可以合并到主分支中。它用于在准备就绪时拉取主题分支(短期存在的分支,例如之前的iss53分支),以确保它们通过所有测试并且不引入错误。

实际上,我们谈论的是指针在正在进行的提交历史线上移动。稳定的分支位于提交历史线的下游,而最新的分支则位于历史的上游。

通常更容易将它们视为工作隔间,其中一组提交在完全测试通过后会升级到更稳定的隔间。

可以针对多个稳定级别继续执行此操作。一些较大的项目还可能有一个proposed或pu(提议更新)分支,其中包含可能尚未准备好进入下一个或主分支的集成分支。这个想法是,当前分支处于不同的稳定级别;当它们达到更稳定的水平时,它们将合并到它们上面的分支中。再次强调,拥有多个长期运行的分支并不是必需的,但通常很有帮助,特别是在处理非常大型或复杂的项目时。

主题分支

然而,在任何大小的项目中,主题分支都是有用的。主题分支是创建并用于单个特定功能或相关工作的短期存在的分支。这是以前可能从未在版本控制系统中执行过的操作,因为创建和合并分支通常成本过高。但在Git中,一天中创建、处理、合并和删除分支几次是很常见的。

在前面篇章中使用iss53和hotfix分支就看到了这一点。在这些分支上进行了一些提交,然后在将它们合并到主分支后直接删除了它们。这种技术允许快速而完全地进行上下文切换 - 因为工作被分隔成了各自的隔间,该分支中的所有更改都与该主题相关,因此在代码审查等过程中更容易看到发生了什么。可以将更改保留在那里数分钟、数天或数月,并在准备好时合并它们,而不管它们创建或工作的顺序如何。

考虑一个例子,在主分支上进行一些工作,然后切换分支到一个问题分支(iss91)上进行一些工作,然后再切换分支到另一个分支上尝试另一种处理相同事物的方式(iss91v2),然后回到主分支并在那里进行一段时间的工作,然后在那里分支出来做一些不确定是否是一个好主意的工作(dumbidea分支)。上述提交历史将看起来像这样:

现在,假设最喜欢第二个解决方案(iss91v2);并且向同事展示了dumbidea分支,结果证明它是个天才点子。可以丢弃原始的iss91分支(丢失提交C5和C6),并合并另外两个分支。操作历史看起来像这样:

重要的是要记住,在进行所有这些操作时,这些分支完全是本地的。在切分支和合并时,所有操作都仅在本地git存储库中进行 - 与服务器没有任何通信。

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

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

相关文章

每天五分钟深度学习:如何理解逻辑回归算法的假设函数?

本文重点 我们在机器学习专栏中已经学习了逻辑回归算法,本次课程我们将重温逻辑回归算法,该算法适用于二分类的问题,本文主要介绍逻辑回归的假设函数。我们在学习线性回归算法的时候,我们已经知道了线性回归算法的假设hθ(x)=θTX(参数θ的转置*X),但是对于逻辑回归而言…

使用wget下载Github代码文件

前言 使用wget无法直接从Github链接直接下载代码文件,下文介绍解决方案。 解决方案 确保要下载的代码文件是公开文件,否则无法通过wget下载。 进入Github并找到要下载的代码文件,例如: 进入文件后,点击文件右侧的…

Windows完全卸载MySQL后再下载安装(附安装包)

目录 友情提醒第一章:如何完全卸载干净mysql教程(三个步骤完全卸载)1)步骤一:卸载程序2)步骤二:删除文件3)步骤三:删除注册表信息 第二章:下载软件两种方式1&…

R语言数据可视化:ggplot2绘图系统

ggpolt2绘图系统被称为R语言中最高大上的绘图系统,使用ggplot2绘图系统绘图就像是在使用语法创造句子一样,把数据映射到几何客体的美学属性上。因此使用ggplot2绘图系统的核心函数ggplot来绘图必须具备三个条件,数据data,美学属性…

视频插针调研

视频插针 1、评估指标2、准确度3、实时4、视频流处理3、实时RIFE视频插帧测试 1、评估指标 参考:https://blog.csdn.net/weixin_43478836/article/details/104159648 https://blog.csdn.net/weixin_43605641/article/details/118088814 PSNR和SSIM PSNR数值越大表…

【CSS】MDN

一、CSS构建 1.1 CSS选择器 1.1.1 元素选择器 标签不区分大小写 示例: span {background-color: yellow; }1.1.2 通用选择器 选择文档中所有内容,重置样式表中使用较多 鉴于div:first-child(代表所有的div元素,并且是第一个…

IT行业网络安全守护者-行云管家云堡垒机

IT行业即信息技术行业,是一个涵盖广泛的行业领域,主要涉及与信息的处理、存储、传输和应用相关的技术。对于IT行业而言,保障数据安全以及网络安全至关重要,一不小心就容易造成数据泄露事件。今天我们小编就给大家介绍一下IT行业网…

Docker 搭建私有镜像仓库

一、镜像仓库简介 Docker的镜像仓库是一个用于存储和管理Docker镜像的中央位置。镜像仓库的主要作用是提供一个集中的地方,让用户可以上传、下载、删除和共享Docker镜像。镜像仓库又可以分为公共镜像仓库和私有仓库镜像仓库: 公共镜像仓库 Docker Hub 是…

ZStack Cloud 5.0.0正式发布——Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强四大亮点简析

近日,ZStack Cloud 5.0.0正式发布,推出了包含Vhost主存储、隔离PVLAN网络、云平台报警优化、灰度升级增强在内的一系列重要功能。云主机管理、物理机运维、密评合规、灾备服务等诸多使用场景和功能模块均有更新,为您带来更完善的平台服务、更…

OJ 进制转换 判断进制【C】

进制转换 好久没写C,太生疏了,记一下我卡住的几个点 1.C没有字符串这种数据类型,要实现读入一个未知长度的字符串比较简单的方法 建立一个一定比这个字符串长的数组,而字符串在数组中的存储是会自动以\0结尾的,所以遍…

macOS制作C/C++ app

C/C制作macOS .app 一、 .app APP其实是一个文件夹结构,只不过mac的界面中让它看起来像一个单独的文件。 在shell终端或者右键查看包结构即可看到APP的目录结构。 通常的app目录结构如下: _CodeSignature, CodeResources 一般为Mac APP Store上架程序…

三极管结构难?——秒了

前边我们已经学完了PN结,二极管,在分析了二极管后,我们对这些东西有了一定深度的了解,但是只给我们一个二极管去研究,这玩意好像真的没啥大用,其实我们追求的是用半导体材料去代替电子管的放大作用&#xf…

51单片机入门_江协科技_21.2_74HC595 在Proteus中模拟8x8点阵屏环境搭建

1. 为了在proteus中模拟学习江协科技51单片机教程,需要在proteus中搭建74HC595驱动8x8点阵屏的仿真环境; 1.1. 因为连接单片机P0口作为点阵屏负极(行选),所以需要先在P0口上接上上拉电阻RESPACK 8,1k欧姆阻…

K8S哲学 - kubectl

Kubectl is the Kubernetes cli version of a swiss army knife, and can do many things. Kubernetes coordinates a highly available cluster of computers that are connected to work as a single unit k8s production-ready. 概念 kubectl 和 Kubernetes API 区别

【前端】学习路线

1、基础 1.1 HTML 菜鸟教程-主页:https://www.runoob.com/ 可以学习:HTML、CSS、Bootstrap等 1.2 CSS 《通用 CSS 笔记、建议与指导》 1.3 JavaScript 1)入门:JavaScript 的基本语法 2)进阶:现代 …

react-静态组件,动态组件

react09- 组件 静态组件 动态组件 静态组件: 函数组件,在第一次渲染完成后,组件中的内容,不会根据组件内的某些操作再次进行更新,页面并不会跟着改变 过程: 第一次渲染时,执行函数方法&#x…

二、Docker部署Jenckins(详细步骤)

Docker部署Jenckins、初始化(详细步骤) 一、拉取镜像二、启动Jenkins三、访问Jenkins四、安装插件1.配置源2.插件安装 一、拉取镜像 docker安装教程:https://qingsi.blog.csdn.net/article/details/131270071 - 查询镜像 docker search jen…

【配电网故障定位】基于二进制蝗虫优化算法的配电网故障定位 12节点配电系统故障定位【Matlab代码#75】

文章目录 【获取资源请见文章第5节:资源获取】1. 配电网故障定位2. 二进制蝗虫优化算法3. 部分代码展示4. 仿真结果展示5. 资源获取 【获取资源请见文章第5节:资源获取】 1. 配电网故障定位 配电系统故障定位,即在配电网络发生故障的时候&am…

python基础——python包【创建和导入,下载第三方包】

📝前言: 在上一篇文章python基础——模块中,我们讲解了有关python模块的相关知识,这篇文章我们进一步讲解用于储存多个模块文件的python包: 1,什么是python包 2,如何创建和导入python包 3&#…

Windows系统上运行appium连接iOS真机自动化测试

步骤: 1、windows安装tidevice工具 2、Mac系统打包安装WebDriverAgent(WDA)工具 3、安装Appium 4、连接iOS手机 iOS自动化的实现和执行都依赖Mac系统,因为需要通过Xcodebuild编译安装WDA (WebDriverAgent)到iOS设备中,通过WDA实现对被测应用进行操作。而Windows系统无…