git的分支管理

✨前言✨

📘 博客主页:to Keep博客主页
🙆欢迎关注,👍点赞,📝留言评论
⏳首发时间:20246月19日
📨 博主码云地址:博主码云地址
📕参考书籍:《C++ Primer》《C++编程规范》
📢编程练习:牛客网+力扣网
**由于博主目前也是处于一个学习的状态,如有讲的不对的地方,请一定联系我予以改正!!!

Git中的分支

  • 1 理解分支
  • 2 创建与切换分支
  • 3 合并分支
  • 4 删除分支
  • 5 合并冲突
  • 6 分支策略管理
  • 7 BUG分支
  • 8 删除临时分支

1 理解分支

在版本回退⾥,我们已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀。HEAD就不是指向提交,而是指向当前所在的分支!我们可以结合下图来理解:
在这里插入图片描述
也就是说,随着我们不断的提交,master分支也就会越来越长!

2 创建与切换分支

有下面两种方法:

第一种:

  • git branch 分支名 //创建分支
  • git checkout 分支名 //切换到该分支上
    在这里插入图片描述

第二种:

  • git checkout -b 分支名 //创建分支并且切换到该分支上
    在这里插入图片描述

查看分支的命令

git branch -a //查看有多少个分支,以及可以看到当前处于那个分支
在这里插入图片描述

我们学会了创建和切换分支,如果我们在dev分支上对某个文件进行操作,然后进行add,commit一系列操作后,在切换回master分支,我们可以发现对dev分支上改动的文件,在master分支上是看不见的,这是为什么呢?那是因为dev对应的才是最新的提交,而master并不是在最新的提交时间线上,所以就会看不到提交!如下图所示:
在这里插入图片描述

3 合并分支

为了使得master分支上可以看到最新的提交,我们可以通过将dev分支合并到master分支上!

git merge 分支名 //把该分支合并到当前所在的分支
在这里插入图片描述

我们可以发现这里有一个fast-forward,这个是分支的合并方式,在这里就是将master指向dev当前的提交,具体有哪些常见方式,我们在后面后介绍到的!这里有这样一个印象就行了!

4 删除分支

git branch -d 分支名

就是将不在使用的分支删除掉即可!原理图如下所示:
在这里插入图片描述

5 合并冲突

我们接下来看这样的一个场景,我们在master分支上对某个文件(本文是创建file1文件进行实验)进行修改并且提交,而在dev分支上对同一个文件进行修改并且提交!场景的原理图如下图所示:
在这里插入图片描述
在上述情况下进行合并,git只能试图把各自的修改合并起来,但是这种合并就有可能会出现冲突!我们使用合并命令:
在这里插入图片描述
出现上述修改冲突然后需要提交修改后的结果就说明出现了合并冲突,如何解决这样的一个冲突呢?我们可以打开冲突的文件:
在这里插入图片描述
我们可以发现的是Git会⽤<<<<<<<,=======,>>>>>>>来标记出不同分⽀的冲突内容,我们只需要处理掉这个冲突,在进行add,commit操作进行提交就行了!此时的原理图如下所示:
在这里插入图片描述
另外,我们还可以通过以下命令来查看分支的合并情况!

git log --graph --pretty=oneline --abbrev-commit

6 分支策略管理

在分支合并哪里,我们看到了fast-forward的合并方式,它是怎么合并的呢?它就是直接将master指针指向了dev指针所指向的地方,但是利用这种合并方式,会有一个问题,就是我们把dev分支删除了之后,我们分不清master是正常提交的,还是通过fast-forward方式进行合并得到的!也就是说会省略掉分支信息!但是在合并冲突哪里,就不会出现这样的问题,那是因为我们master有新的提交,dev也有新的提交,然后我们要对冲突处理最后提交!简单来说就是就是不是采用fast-forward方式进行合并!那么如何解决这个问题呢?在git中我们可以禁止使用fast-forward方式进行分支的合并!命令如下:

  • git merge --no-ff -m “合并说明” 分支名

–no-ff 参数,表⽰禁⽤ Fast forward 模式。禁⽤ Fast forward 模式后合并会创建⼀个新的 commit ,所以加上 -m 参数,把描述写进去!此时我们可以图解一下禁用与不禁用fast-forward的区别:
在这里插入图片描述
分支策略:在实际的开发中,master分支上存放的应该是稳定版本的代码,我们一般都是利用dev分支(可以存在多个开发的分支,多人共同协作开发)进行开发,在本地仓库上,我们是将master分支合并到dev上,进行代码测试,没问题之后,在合并到master分支上,然后在上传到远端仓库上进行部署!

7 BUG分支

顾名思义,其实就是专门帮助我们修复bug的分支,假如我们在dev分支上代码开发只进行了一部分,我们还不能进行提交,而master分支又出现了bug,又不想让这部分代码丢失,我们该怎么处理呢?我们应当使用如下命令,来隐藏工作区的内容,如果不隐藏,在master分支上的工作区也是看的见的(包括在BUG分支上),这个是我们不希望看到的,所以我们需要进行隐藏,在修复完bug之后再进行恢复!

  • git stash //隐藏工作区中内容
  • git status //查看工作区的状态

然后我们在创建BUG分支,修改bug,修改完之后,我们先将master分支合并到bug分支上进行测试,然后我们在合并到master分支上,然后我们在切换回dev分支,使用如下命令,查看隐藏工作现场:

  • git stash list

然后我们在利用下面的命令进行恢复现场,

  • git stash pop stash@{0} //删除指定的内容,不带红色的,默认删除的是第一个

恢复的同时会把stash也删了,我们还有另外一种恢复现场的方式,采⽤ git stash apply 恢复,但是恢复后,stash内容并不删除,我们需要⽤git stash drop stash@{0}来删除指定的内容;我们也可以多次stash,恢复的时候,先⽤ git stash list 查看,然后恢复指定的stash,⽤命令git stash apply stash@{0}!

8 删除临时分支

这种情况,我们创建了一个分支,开发了对应的代码并且已经提交了,但是还没有合并master分支,对于这种临时分支,我们要采用强制删除!

git branch -D 分支名

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

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

相关文章

【TB作品】MSP430G2553,单片机,口袋板, 单相交流电压、电流计设计

题5 单相交流电压、电流计设计 设计基于MSP430的单相工频交流电参数检测仪。交流有效值0-220V&#xff0c;电流有效值0-40A。电压、电流值经电压、电流传感器输出有效值为0-5V的交流信号&#xff0c;传感器输出的电压、电流信号与被测电压、电流同相位。 基本要求如下 &#xf…

05、部署 YUM 仓库及NFS 共享服务

目录 5.1 部署YUM软件仓库 5.1.1 准备网络安装源&#xff08;服务器端&#xff09; 1、准备软件仓库目录 2、安装并启用vsftpd服务 5.1.2 配置软件仓库位置&#xff08;客户端&#xff09; 5.2 使用yum工具管理软件包 5.2.1 查询软件包 1、yum list——查询软件包列表 …

DGit的使用

将Remix连接到远程Git仓库 1.指定克隆的分支和深度 2.清理&#xff0c;如果您不在工作区上工作&#xff0c;请将其删除或推送至 GitHub 或 IPFS 以确保安全。 为了进行推送和拉取&#xff0c;你需要一个 PAT — 个人访问令牌 当使用 dGIT 插件在 GitHub 上推送、拉取、访问私…

网关助力边缘物联网

网关助力边缘物联网 在探讨网关如何助力边缘物联网&#xff08;IoT&#xff09;的议题时&#xff0c;我们不得不深入分析这一技术交汇点的复杂性与潜力。边缘计算与物联网的融合&#xff0c;通过将数据处理与分析能力推向网络边缘&#xff0c;即数据生成的地方&#xff0c;极大…

接口性能提升秘籍:本地缓存的总结与实践

&#x1f345;我是小宋&#xff0c; 一个只熬夜但不秃头的Java程序员。 &#x1f345;关注我&#xff0c;带你轻松过面试。提升简历亮点&#xff08;14个demo&#xff09; . . &#x1f30f;号&#xff1a;tutou123com。拉你进面试专属群。 优雅的接口调优之本地缓存优化 接口…

Spring中网络请求客户端WebClient的使用详解

Spring中网络请求客户端WebClient的使用详解_java_脚本之家 Spring5的WebClient使用详解-腾讯云开发者社区-腾讯云 在 Spring 5 之前&#xff0c;如果我们想要调用其他系统提供的 HTTP 服务&#xff0c;通常可以使用 Spring 提供的 RestTemplate 来访问&#xff0c;不过由于 …

初识es(elasticsearch)

初识elasticsearch 什么是elasticsearch&#xff1f;&#xff1a; 一个开源的分部署搜索引擎、可以用来实现搜索、日志统计、分析、系统监控等功能。 什么是文档和词条&#xff1f; 每一条数据就是一个文档对文档中的内容进行分词&#xff0c;得到的词语就是词条 什么是正向…

【elementui源码解析】如何实现自动渲染md文档-第四篇

目录 1.前言 2.md-loader - index.js 1&#xff09;md.render() 2&#xff09;定义变量 3&#xff09;while stripTemplate stripScript genInlineComponentText 4&#xff09;pageScript 5&#xff09;return 6&#xff09;demo-block 3.总结 所有章节&#x…

微纳米气泡发生器是微纳米气泡产生装置 未来市场需求将不断释放

微纳米气泡发生器是微纳米气泡产生装置 未来市场需求将不断释放 微纳米气泡发生器即微纳米气泡发生设备&#xff0c;是一种将水和气体混合并产生微纳米气泡的设备。微纳米气泡是指直径在100μm以下的气泡&#xff0c;分为纳米气泡和微米气泡。   微纳米气泡发生器主要由发生设…

录屏录音两不误!电脑录屏录音软件推荐(3款)

在数字化时代&#xff0c;电脑录屏录音软件已成为教学、演示、会议记录等领域不可或缺的工具。它们能够捕捉屏幕上的每一个动作&#xff0c;同时录制音频&#xff0c;为用户提供直观、生动的视听材料。本文将详细介绍三种常用的电脑录屏录音软件&#xff0c;帮助读者了解并掌握…

误删的文件不在回收站如何找回?6个恢复秘诀分享!

“我刚刚误删了一些文件&#xff0c;但是在回收站中没有看到这部分文件&#xff0c;这种情况下还有方法可以找回误删的文件吗&#xff1f;在线等一个答案&#xff01;” 在数字化时代&#xff0c;文件的安全和完整性对于个人和企业都至关重要。然而&#xff0c;有时候由于疏忽或…

【Android】使用SeekBar控制数据的滚动

项目需求 有一个文本数据比较长&#xff0c;需要在文本右侧加一个SeekBar&#xff0c;然后根据SeekBar的上下滚动来控制文本的滚动。 项目实现 我们使用TextView来显示文本&#xff0c;但是文本比较长的话&#xff0c;需要在TextView外面套一个ScrollView&#xff0c;但是我…

利用K8S技术栈打造个人私有云

1.三个节点&#xff1a;master&#xff0c;slave&#xff0c;client 在Kubernetes集群中&#xff0c;三个节点的职责分别如下&#xff1a; Master节点&#xff1a; docker&#xff1a;用于运行Docker容器。 etcd&#xff1a;一个分布式键值存储系统&#xff0c;用于保存Kuberne…

42、基于神经网络的训练堆叠自编码器进行图像分类(matlab)

1、训练堆叠自编码器进行图像分类的原理及流程 基于神经网络的训练堆叠自编码器进行图像分类的原理和流程如下&#xff1a; 堆叠自编码器&#xff08;Stacked Autoencoder&#xff09;是一种无监督学习算法&#xff0c;由多个自编码器&#xff08;Autoencoder&#xff09;堆叠…

宝塔软件默认安装位置

自带的JDK /usr/local/btjdk/jdk8Tomcat 各个版本都在bttomcat这个文件夹下面&#xff0c;用版本区分。tomcat_bak8是备份文件 /usr/local/bttomcat/tomcat8nginx /www/server/nginxnginx配置文件存放目录 /www/server/panel/vhost/nginxredis /www/server/redismysql /…

nextjs(持续学习中)

return ( <p className{${lusitana.className} text-xl text-gray-800 md:text-3xl md:leading-normal}> Welcome to Acme. This is the example for the{’ } Next.js Learn Course , brought to you by Vercel. ); } 在顶级 /public 文件夹下提供静态资产 **默认 /…

央国企财务专家的“专家课”——中国总会计师协会联合实在智能举办RPA专项培训

近日&#xff0c;中国总会计师协会正式举办了为期五天的「财务数字化思维与实用IT技能提升」专项培训&#xff0c;吸引了来自中铁十五局集团有限公司、中国航空工业规划设计院、中核核电运行管理有限公司、中国北方车辆有限公司、一汽物流有限公司等国企、事业单位及民营企业共…

【权威出版/投稿优惠】2024年水利水电与能源环境科学国际会议(WRHEES 2024)

2024 International Conference on Water Resources, Hydropower, Energy and Environmental Science 2024年水利水电与能源环境科学国际会议 【会议信息】 会议简称&#xff1a;WRHEES 2024 大会时间&#xff1a;点击查看 截稿时间&#xff1a;点击查看 大会地点&#xff1a;…

【Linux】进程间通信3——system V共享内存

1.system V进程间通信 管道通信本质是基于文件的&#xff0c;也就是说操作系统并没有为此做过多的设计工作&#xff0c;而system V IPC是操作系统特地设计的一种通信方式。但是不管怎么样&#xff0c;它们的本质都是一样的&#xff0c;都是在想尽办法让不同的进程看到同一份由操…

压力应变桥信号变送光电隔离放大模块PCB焊接式 差分信号输入0-10mV/0-20mV/0-±10mV/0-±20mV转0-5V/0-10V/4-20mA

概述&#xff1a; IPO压力应变桥信号处理系列隔离放大器是一种将差分输入信号隔离放大、转换成按比例输出的直流信号混合集成厚模电路。产品广泛应用在电力、远程监控、仪器仪表、医疗设备、工业自控等行业。该模块内部嵌入了一个高效微功率的电源&#xff0c;向输入端和输出端…