【Git】“分支” 如何管理和使用?这一篇就够了~

news2024/11/24 4:01:21

目录

一、什么是分支?

二、分支的操作

2.1、查看分支

2.2、创建分支

2.3、切换分支 和 修改分支

2.4、合并分支

2.4.1、正常合并

2.4.2、合并冲突

三、创建分支和切换分支的底层原理


一、什么是分支?

        在版本控制中,我们可以针对每个任务创建一个单独的分支,可以让我们的工作从主线上分离开,在开发自己的分支的同时,不会影响主线的分支运行;(分支的底层通过指针进行引用的)

例如下图:

解释: 

        红色框便是主线分支,其他分支的创建通过复制主线的任务,进行单独修改,再修改完成以后再合并到主线上;

好处:

        通过分支,可以同时并行开发多个功能,十分高效,并且每个分支互不影响,即使某一分支开发失败,也可以将其删除后重新开发;


二、分支的操作

2.1、查看分支

git branch -v

执行效果:

 

这里可以看出,当前只有这么一个主分支;

        如果当前这个主分支里面东西写错了,需要紧急修复怎么办?这时候就可以创建分支,来进行合并,怎么创建分支呢?往下看~

2.2、创建分支

git branch 分支名

例如我想创建一个名字为hot-fix这样一个分支:

接着查看分支:

解释: 

        1.创建好这样一个分支就意味着开辟了一个新的空间,并将主分支master上的数据都拷贝到了这个分支上;

        2.master 分支被 绿色标记 是因为当前所在分支为master;

2.3、切换分支 和 修改分支

语法如下:

//切换分支
git checkout 要切换到的分支名

先来看看当前分支是什么:

如果我们需要修改已经创建好的 hot-fix 分支上的内容,该如何操作?往下走

首先通过 git checkout 切换到hot-fix分支上:

        这个时候就可以通过vim来修改当前分支上的文件(这里我已经创建好一个test.txt文件)。修改完后,通过 git status 可以观察test.txt文件被标红,说明已经在工作区被修改,如下:

 

 这时候,如果你觉得这个分支修改的很好,那么你就可以通过 git add 添加到暂存区,最后通过 git commit 提交到本地库(注意,即使提交到本地库也不会影响到master分支),如下:

 解释:

        HEDA -> 这里指向hot-fix,以及后面的代码,表示当前在hot-fix分支下,提交到本地库了一个名为"hot-fix first commit"这样一个任务;

切换回master分支,再查看test.txt文件就会发现,文件的内容并没有被修改,那怎么做才能合并到master分支呢?往下看~

2.4、合并分支

git merge 要合并的分支名

通过这个操作,就可以将想要合并的分支合并到当前分支上~

2.4.1、正常合并

例如,将hot-fix分支合并到master分支上,那么你就需要先切换到master分支上,再如输入指令,如下:

        为什么能正常合并呢?这是因为你在创建hot-fix分支以后,没有对master分支进行修改,若进行修改,并提交到本地库,则会冲突合并(下面会讲到);

2.4.2、合并冲突

怎么产生合并冲突?

        经过上面的操作后,此时master分支和hot-fix分支的内容是一样的,这个时候,如果对master分支中的test.txt进行修改,并提交本地库,接着切换分支到hot-fix,对文件test.txt进行修改,并提交本地库,最后切换分支到master,合并hot-fix分支,这个时候就会产生冲突如下:

 通过查看本地库状态可以看到如下:

如何解决冲突?         

        这里就显示有两个分支待修改,主机自然就不知道你要保存哪一个;所以想要她两合并,你需要手动修改,通过vim修改成最后你需要保存的数据,修改完后,提交到本地库即可;注意!提交的时候不能带文件名,否则会报错,如下:


三、创建分支和切换分支的底层原理

原本只有一条master分支:

现在又创建了一个hot-fix分支,并且还是从third的下创建的分支,并对该分支进行了修改:

这时,想要从master分支上切换到hot-fix分支上,本质就是修改head指针的指向:

 解释:

        master 和 hot-fix 都是指向具体版本记录的指针;当前所在分支是由HEAD决定的(HEAD指向哪一个分支,当前就在哪一个分支上),所以创建分支本质上就是创建指针;


 

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

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

相关文章

单调队列算法 - 滑动窗口问题(常见模型:找出滑动窗口中的最大值/最小值)

欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录) 文章字体风格: 红色文字表示:重难点✔ 蓝色文字表示&#xff1a…

ASEMI肖特基二极管MBR10100FCT图片,MBR10100FCT大小

编辑-Z ASEMI肖特基二极管MBR10100FCT参数: 型号:MBR10100FCT 最大重复峰值反向电压(VRRM):100V 最大RMS电桥输入电压(VRMS):70V 最大直流阻断电压(VDC)…

SpringBoot整合Druid数据源

SpringBoot整合Druid数据源1.使用Druid数据源2.完整的Druid配置3.为 DruidDataSource 绑定全局配置文件中的参数4.配置Druid数据源监控5.配置 filter 过滤器1.使用Druid数据源 <!-- https://mvnrepository.com/artifact/com.alibaba/druid --> <dependency><gr…

方差分析 / 主成分分析 / 因子分析 / 聚类分析

一.方差分析 水平&#xff1a;因素的不同状态&#xff0c;分组是按照因素的不同水平划分的 因变量&#xff1a;在分组试验中&#xff0c;对试验对象所观测记录的变量&#xff0c;它是受各因素影响的变量 常见的方差分析类型&#xff1a;单因素方差分析&#xff0c;多因素方差…

RK3568平台开发系列讲解(调试篇)如何跟踪系统事件

🚀返回专栏总目录 文章目录 一、ltrace二、strace三、ptrace沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本文我们要介绍 Linux 上两个非常有用的工具:ltrace 和 strace。在分析软件的运行过程、调试疑难 Bug、执行性能分析和调优等方面,它们都是非常有用的辅助…

肠道核心菌属——优/真杆菌属(Eubacterium),你为什么要关心它?

谷禾健康 Eubacterium 通常翻译为真杆菌属或优杆菌属 Eubacterium&#xff0c;革兰氏阳性细菌&#xff0c;属于真杆菌科&#xff0c;厚壁菌门。 Eubacterium 是在健康人结肠中发现的一种重要的肠道细菌&#xff0c;它是人类肠道微生物群的核心菌属之一&#xff0c;并显示…

SPI通信协议详解

一&#xff0c;SPI的简介 SPI&#xff0c;是英语Serial Peripheral interface的缩写&#xff0c;顾名思义就是串行外围设备接口。是Motorola首先在其MC68HCXX系列处理器上定义的。SPI接口主要应用在 EEPROM&#xff0c;FLASH&#xff0c;实时时钟&#xff0c;AD转换器&#xff…

【力扣刷题】预测赢家

&#x1f517; 题目链接 题目描述 给你一个整数数组 nums 。玩家 1 和玩家 2 基于这个数组设计了一个游戏。 玩家 1 和玩家 2 轮流进行自己的回合&#xff0c;玩家 1 先手。开始时&#xff0c;两个玩家的初始分值都是 0 。每一回合&#xff0c;玩家从数组的任意一端取一个数…

leetcode热题HOT100汇总——持续更新中

文章目录前言1. 两数之和2. 两数相加3.无重复字符的最长子串4. 寻找两个正序数组的中位数5. 最长回文子串10. 正则表达式匹配11. 盛最多水的容器15. 三数之和17. 电话号码的字母组合19. 删除链表的倒数第 N 个结点20. 有效的括号21. 合并两个有序链表前言 为了学习本文捋顺lee…

再多学一点Spring之过滤器与拦截器的区别

学习和使用Spring这么久了&#xff0c;我们都用过过滤器和拦截器&#xff0c;但是真要被问到过滤器和拦截器有什么区别&#xff0c;我又一脸懵逼了&#xff0c;回答不上来。今天我们就来学习一下&#xff0c;过滤器和拦截器。 过滤器 通过实现javax.servlet.Filter接口来自定义…

网站被篡改 收录一些非本网站快照跳转如何解决

在实际的网站运营维护过程中&#xff0c;经常发生网站被HACK攻击等情况&#xff0c;尤其网站的标题被篡改为中文关键词<title>&#xff0c;使得网站在百度搜索的索引结果非常的明显&#xff0c;直接在浏览器里打开网站&#xff0c;用肉眼看到的是未被篡改的首页标题。根据…

计算机学徒等级划分

目录 第一级&#xff1a;菜鸟级 第二级&#xff1a;新手级 第三级&#xff1a;入门级 第四级&#xff1a;精通级 第五级&#xff1a;巅峰级 第一级&#xff1a;菜鸟级 概述&#xff1a;你问他计算机是干什么的&#xff1f;他说&#xff1a;“打游戏的&#xff0c;看电影的…

地下水监测系统的构成,优势是什么?

平升电子地下水监测系统由地下水自动监测站监测设备和监测中心平台软件组成。监测设备自动采集、存储地下水水位、水温、水量、水质数据&#xff0c;通过4G/NB-IoT/北斗无线通信网络定时上报至省/市/县级监测中心平台&#xff0c;平台自动接收和存储数据&#xff0c;并对地下水…

排查 Edge WebView2 在某个设备上不出图像的问题

我们在 Windows 应用内嵌入 Edge WebView2&#xff0c;来展示部分用网页实现的界面。总得来说还是不错的&#xff0c;比如&#xff1a; 渲染很快&#xff0c;基本上内置网页100毫秒以内控件样式很清爽&#xff0c;没有多余界面开发需要调用的 API 也不多 但是最近在某个用户那…

2022年山东最新建筑施工架子工(建筑特种作业)模拟题库及答案

百分百题库提供特种工&#xff08;架子工&#xff09;考试试题、特种工&#xff08;架子工&#xff09;考试预测题、特种工&#xff08;架子工&#xff09;考试真题、特种工&#xff08;架子工&#xff09;证考试题库等,提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助…

21天学Python --- 打卡12:python执行jar包

21天学Python --- 打卡12:Python执行jar包1. Subprocess1.1 Method1.2 Execure Jar2. Jpype2.1 Install2.2 Execute Simple Jar2.2.1 Java Code2.2.2 Python Code2.3 Execute Maven Jar3. Awakening1. Subprocess subprocess 是 Python 2.4 中新增的一个模块 1.1 Method subpro…

第二证券|医药板块短期轮动加快 机构看好后市机会

作为现在商场行情继续性最强的职业板块&#xff0c;医药股昨日早盘呈现回调&#xff0c;午后继续反弹&#xff0c;体现出较强的承接动能。机构以为&#xff0c;本轮新冠医治概念主线行情或仍将延续&#xff0c;但个股或将继续分解。 在本轮反弹行情中&#xff0c;医药板块表现较…

postgres 源码解析 44 btree插入流程 btinsert

基于前两篇对btree的基础介绍&#xff0c;本文将从源码角度讲解btree的插入流程&#xff0c;相关至内容见&#xff1a; postgres源码解析41 btree索引文件的创建–1 postgres源码解析42 btree索引文件的创建–2 数据结构 /** BTStackData -- As we descend a tree, we push t…

干货 | 鸿翼&深信服之内容安全3大应用场景实践

随着企业数字化转型的推进&#xff0c;在企业内容管理层面&#xff0c;面临着数据爆发式增长&#xff0c;内容安全合规、海量非结构化数据分散存储&#xff0c;业务系统重建数据难以整合&#xff0c;无法统一管理等问题。 在数据安全层面&#xff0c;随着新威胁层出不穷&#…

Docker的CICD

&#x1f38f;⭕引言 回顾使用docker进行项目部署的步骤&#xff1a; 将项目通过maven进行编译打包将文件上传到指定的服务器中将war包放到tomcat的目录中通过Dockerfile将Tomcat和war包转成一个镜像&#xff0c;由DockerCompose的docker-compose.yml去运行容器 以上操作&#…