Git——分支(详细解释)

news2025/2/26 4:12:57

目录

一、概念

 1.1 服务器运行模式

 1.2  分支概念

 1.3 分支的好处

二、分支相关操作

 2.1 分支操作

 2.2 查看当前分支

 2.3 创建分支

 2.4 切换分支

2.4.1 切换分支

2.4.2  修改代码并提交(完整过程)

三、合并分支

  3.1 正常合并

  3.2 冲突合并(企业常见)

 3.2.1 演示冲突情况(错误情况):

 3.2.2 手动修改

 3.2.3 底层仍是指针


一、概念

 1.1 服务器运行模式

   从右向左看

   用户在生产分支上进行使用,程序员在开发分支上进行开发

 

1.2  分支概念

   在版本控制过程中,同时推进多个任务,我们就可以创建每个任务单独的分支。使用分支意味着程序员可以把自己的工作从开发主线上分离开,开发自己分支的时候,不会影响主线分支的运行,对初学者来说,分支可以简单的理解为副本,一个分支就是一个单独的副本(分支底层其实也是指针的引用)

比如下图来说,

    在master这个主线上运行,运行的同时要增加功能,那我们就可以把master赋值一份出来,在复制的地方进行开发,在开发完功能后就可以更新版本正常使用

    当我们引入新功能有bug,就可以从master分支再引一个分支hot-fix(热修分支),对代码进行修改,修改后再合并到master

 

 1.3 分支的好处

 同时并行推进多个功能开发,提高效率

  各个分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。

二、分支相关操作

 2.1 分支操作

 

2.2 查看当前分支

git branch -v

目前我们只有一个分支

 

2.3 创建分支

git branch 分支名

 

再次查看分支,发现确实多了一个

 

2.4 切换分支

2.4.1 切换分支

 我们可以看一下下图最后一行末尾的蓝字还是“master”,说明还是在master分支上面的

 

git checkout  分支名

 我们发现git后面的显示确实是从“master”变成了“hot-fix”

我们再查看一下分支,也确实改变了

 

2.4.2  修改代码并提交(完整过程)

  修改成下面的代码

 

我们可以查一下本地库状态

 

 

添加到本地库

提交到本地库

 

再次查看文件

 

查看提交版本

 

三、合并分支

  先将分支切换为master分支然后再合并

然后我们查看一下代码,依然是原来的模样,因为当前指针又回来了,我们也没有合并

下面演示也下合并

  命令:

git merge 分支名

   把指定的分支合并到当前分支上

  3.1 正常合并

下面这段代码的含义就是将“hot-fix”分支合并到“master”分支上

  合并成功,一个文件被修改,两个删除,两行增加

  查看代码

上面是正常的合并

  3.2 冲突合并(企业常见)

  产生原因:合并分支时,两个分支在同一个文件的同一个位置有两套完全不同的修改,Git无法替我们决定使用哪一个,必需人为决定新代码内容

   3.2.1 演示冲突情况(错误情况):

      先修改一下master分支

  添加暂存区、提交本地库

    

 

    再修改一下hot-fix分支

 

切换回master开始操作

 

合并

    类似下面的这种提示

 

查看本地库状态

就告诉我们了,hello.txt是没有合并成功的,两个分支都对他做了修改了

此时就不能自动合并了,就需要我们手动合并代码
 

 3.2.2 手动修改

 此时我们手动打开文件看一下,冲突的地方已经给我们标出来了

通过<<<<<   =====  >>>>> 这种特殊符号标记出来冲突

  <<<HEAD 表示当前分支 

   在HEAD与====之间是当前分支的代码

   在====与>>>>之间是我们要合并的代码

  明显这两部分都做了修改,所以Git蒙蔽了

如何手动合并?

      想要把保存的留下来就可以了,手动删,把特殊符号也删掉,记得保存

 

此时我们应该把我们修改之后的文件放到暂存区、提交本地库(这个时候提交不能带文件名)

完美查看文件

   3.2.3 底层仍是指针

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

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

相关文章

DGL学习笔记——第一章 图

提示&#xff1a;DGL用户指南学习中 文章目录一、关于图的基本概念&#xff1f;二、图、节点和边三、节点和边的特征四、从外部源创建图1、从Scipy稀疏矩阵中构建图示例2、从networkx中构建图示例3、从csv中构建图结构总结一、关于图的基本概念&#xff1f; 图是用以表示实体及…

【推荐系统学习笔记】-- 1、推荐系统架构

根本解决的问题&#xff1a;在信息过载的情况下&#xff0c;用户如何高效获取感兴趣的信息。 1 逻辑架构 推荐系统要处理的问题就可以被形式化地定义为&#xff1a;对于某个用户U&#xff08;User&#xff09;&#xff0c;在特定场景C&#xff08;Context&#xff09;下&…

区块链 - 各个国家Web3的现状与趋势

​潜力博主推荐&#xff0c;点上面关注博主↑↑↑ 2022年&#xff0c;元宇宙、NFT 、GameFi、DAO、DeFi 等 Web3 时代的新生事物&#xff0c;正在彻底改写传统商业模式&#xff0c;重塑全球数字商业的版图&#xff0c;一个全新的数字时代正在开启。 美国、欧洲官方开始在 Web…

【构建ML驱动的应用程序】第 4 章 :获取初始数据集

&#x1f50e;大家好&#xff0c;我是Sonhhxg_柒&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流&#x1f50e; &#x1f4dd;个人主页&#xff0d;Sonhhxg_柒的博客_CSDN博客 &#x1f4c3; &#x1f381;欢迎各位→点赞…

C语言——指针初阶详解

&#x1f412;博客名&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;别人可以拷贝我的模式&#xff0c;但不能拷贝我不断往前的激情 目录 1. 指针是什么 2. 指针和指针类型 2.1指针类型的第一个意义 2.2指针类型的第二个意义 3. 野指针 3.1 野指针成因 3.2 如何…

零基础自学javase黑马课程第十六天

零基础自学javase黑马课程第十六天 ✨欢迎关注&#x1f5b1;点赞&#x1f380;收藏⭐留言✒ &#x1f52e;本文由京与旧铺原创&#xff0c;csdn首发&#xff01; &#x1f618;系列专栏&#xff1a;java学习 &#x1f4bb;首发时间&#xff1a;&#x1f39e;2022年11月21日&…

三菱FX3U——ST编程点动与自锁

通过赋值 : 操作符&#xff0c;可以控制元件的状态&#xff1b; Y0:1&#xff0c;使Y0得电&#xff0c; Y0:0,使Y0失电&#xff1b; Y0:TRUE,使Y0得电&#xff0c; Y0:FALSE,使Y0失电; Y2:M0,通过M0的状态来控制Y2&#xff1b; NOT 取反操作&#xff0c; 状态取反&#xff…

活动现场大屏幕互动系统(微信墙)修复版完美PHP源码,带完整素材包和详细使用文档

源码收集于网络&#xff0c;觉得不错&#xff0c;2022-11-18亲测了源码&#xff0c;顺手修复了原来的几处bug。网上的这个源码有个重大bug&#xff0c;就是后台系统配音没法上传音乐文件。我理了一下代码&#xff0c;修复了这个问题&#xff0c;现在后台可以分别给每个模块上传…

CTFHub技能树 Web-文件上传详解

文章目录0x01 无验证0x02 前端验证0x03 .htaccess0x04 MIME绕过0x05 00截断0x06 双写后缀0x07 文件头检查0x08 其他摘抄0x01 无验证 介绍&#xff1a;直接上传后缀是php的文件即可 文件上传 <?php eval($_POST[777]);?> 进行连接 查找flag 0x02 前端验证 介…

智慧住建解决方案-最新全套文件

智慧住建解决方案-最新全套文件一、建设背景目前智慧住建的信息化现状&#xff1a;1、系统重叠建设&#xff0c;标准规范不统一2、信息应用水平不均衡&#xff0c;资源共享待提升3、应用系统众多&#xff0c;用户操作体验不佳4、原有架构难以适应“互联网”的新要求二、总体设计…

计算机中的第三个伟大发明

本节我们学习了控制计算机跳转指令的第三个发明的由来&#xff0c;以及清除指令。并且展示了计算机的整体控制部分的布线图。 第三个发明 对于跳转指令&#xff0c;有时它会跳转&#xff0c;有时不会。跳或不跳只是两种可能性&#xff0c;所以只需要一个bit就可以确定哪一种会…

【Kubernetes快速实战】

K8S官网文档&#xff1a;https://kubernetes.io/zh/docs/home/ 文章目录前言一、K8S核心特性二、K8S集群安装1.安装K8S集群1、关闭防火墙2、关闭 selinux3、关闭 swap4、给三台机器分别设置主机名5、在 k8s‐master机器添加hosts&#xff0c;执行如下命令&#xff0c;ip需要修改…

全球最受欢迎的「数字游民」城市竟然是它?

相信你已经或多或少听说过「数字游民」这个词汇了。 「数字游民」译自英文词组Digital Nomad&#xff0c;是指那些没有办公室等固定工作场所&#xff0c;利用互联网从事远程工作&#xff0c;实现地域和时间的相对自由&#xff0c;在全球范围内移动生活的人群。 想想看&#x…

STM32实战总结:HAL之电机

电机基础知识参考&#xff1a; 51单片机外设篇&#xff1a;电机_路溪非溪的博客-CSDN博客 无刷电机和有刷电机 先详细了解有刷电机&#xff1a; 带你了解&#xff08;有刷&#xff09;电机工作原理_哔哩哔哩_bilibili 再详细了解无刷电机&#xff1a; 无刷直流电机工作原理_哔哩…

MySQL在centos上的安装

去mysql官网下载mysql 通过mysql官网的download界面&#xff0c;找到community server&#xff0c;然后选择对应linux版本下载对应的安装包 这里直接上链接 https://downloads.mysql.com/archives/community/ 可以通过cat /etc/centos-release命令找到当前centos对应的版本 下…

[附源码]java毕业设计小区供暖收费管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

重磅上市《精通Neo4j》

重磅上市《精通Neo4j》重磅上市《精通Neo4j》一、写在前面的话二、主要内容三、更多介绍Here’s the table of contents:重磅上市《精通Neo4j》 《精通Neo4j》是继《Neo4j权威指南》之后第二本由中国人原创的图数据库领域专业书籍。由清华大学出版社于2022年11月出版&#xff0…

【菜菜的sklearn课堂笔记】逻辑回归与评分卡-步长的进一步理解和max_iter

视频作者&#xff1a;菜菜TsaiTsai 链接&#xff1a;【技术干货】菜菜的机器学习sklearn【全85集】Python进阶_哔哩哔哩_bilibili 既然参数迭代是靠梯度向量的大小d步长α梯度向量的大小d \times步长\alpha梯度向量的大小d步长α来实现的&#xff0c;而J(θ)J(\theta)J(θ)的降…

群推王|如何引爆您的推特流量

推特营销主要吸引力在于其庞大的用户群体。它是最大的社交媒体平台之一&#xff0c;据统计每月有3.3亿活跃用户&#xff0c;为品牌知名度和增长做出了重大贡献。 尽管我们都知道推特营销的重要性&#xff0c;但是在实际运用上大家可能会遇到一些问题&#xff0c;比如您有很多粉…

C/C++ 结构体变量初始化的几种方法总结及内存排列(字节对齐)

前言 最近看到一些别人的代码&#xff0c;对结构体的初始化使用了不同的语法&#xff0c;就决定对结构体的初始化方法做个探索&#xff0c;这里小小的记录一下。 注意&#xff0c;没有初始化的结构体变量是不会输出的&#xff0c;比如 struct SBase{int iNumberOne;int iNum…