Git分支管理

前言

文本将会向您介绍创建、查看、切换、合并、删除、合并、临时保存等分支管理操作

创建/查看/切换分支

[Fan_558@VM-12-13-centos gitcode]$ git branch dev   //创建分支
[Fan_558@VM-12-13-centos gitcode]$ git branch		//查看分支dev
* master
[Fan_558@VM-12-13-centos gitcode]$ git checkout dev //切换分支
当我们从master分支切换到dev分支 并对Readme文件进行修改(添加了第6行)

在这里插入图片描述

然后在dev分支上进行add,commit操作
在这里插入图片描述

[Fan_558@VM-12-13-centos gitcode]$ git checkout master //切换回master分支
我们打印Readme文件后会发现master分支下的Readme内容并不和dev分支下的内容相同

在这里插入图片描述

原因是此时master分支并没有指向最新的提交
在这里插入图片描述
我们来看看dev分支和master分支指向,发现二者指向的提交是不一样的
在这里插入图片描述

合并分支

因此我们需要将dev分支的内容合并到master分支上

在这里插入图片描述

最后我们再打印Readme文件,会发现此时master分支下也具有了dev分支上添加的内容
我们也可以观察二者指向的提交(此时一致了)

在这里插入图片描述

在这里插入图片描述

删除分支

合并完成后, dev 分⽀对于我们来说就没⽤了, 那么dev分⽀就可以被删除掉,注意如果当前正处于某分⽀下,就不能删除当前分⽀,只能在其他分支上删除其他分支。

在这里插入图片描述

如果一个分支上进行了add,commit操作后,切回master分支想要删除这个分支,这时使⽤传统的 git branch -d 命令删除分支的方法是不行的
在这里插入图片描述
这时我们需要使用强制删除git branch -D dev

合并冲突

若是我们在dev分支做修改
在这里插入图片描述
又在master分支做了修改
在这里插入图片描述
并都进行add,commit操作
现在, master 分⽀和 dev1 分⽀各⾃都分别有新的提交
在这里插入图片描述

这种情况下,Git 只能试图把各⾃的修改合并起来,但这种合并就可能会有冲突
在master分支下尝试合并dev分支
发现 ReadMe ⽂件有冲突后,可以直接查看⽂件内容,要说的是 Git 会⽤ <<<<<<<,=======, 来标记出不同分⽀的冲突内容
如下:
在这里插入图片描述
这时我们就需要手动进行修改,并需要再次提交修改后的结果
修改成如下:
在这里插入图片描述
注意一定重新提交
在这里插入图片描述

合并分支的两种模式

此前我们合并分支的方式是: git merge +分支 这种合并的方式默认是Fast forward,在这种 Fast forward 模式下,删除分⽀后,查看分⽀历史时,会丢掉分⽀信息,看不出来最新提交到底是 merge 进来的还是正常提交的

在这里插入图片描述
在这里插入图片描述

我们可以观察到,add hello linux的那一行并没有显示该提交是我们合并还是直接commit得来的。
在这里插入图片描述

Git ⽀持我们强制禁⽤ Fast forward 模式,那么就会在 merge 时⽣成⼀个新的 commit ,这样,从分⽀历史上就可以看出分⽀信息。
–no-ff ⽅式的 git merge
在这里插入图片描述
当我们强制禁⽤ Fast forward 模式后,再合并,打印提交信息
可以观察到delete hello linux那一行,有合并的指向,告诉我们此提交是通过merge合并得来的在这里插入图片描述

Stash临时保存修改

临时保存修改:当你正在进行一项工作,但需要暂时保存当前的修改,以便稍后继续工作时可以使用stash命令。这在你需要切换到其他任务或者处理突发情况时非常有用。 当你正在一个分支上进行开发(I am coding...)时,这时候在master分支上发现了一个bug,我们需要修复这一个bug,然而结合我们之前所讲,在一个分支上做的修改需要在当前分支下进行add,commit操作,然而我们并没有完成开发,只是想要临时离开去修复一个bug,因此我们需要用stash命令对工作区的修改进行暂存

dev分支下:
在这里插入图片描述
进行git stash暂存修改操作
在这里插入图片描述

然后切换到fix_bug分支上修复bug
在这里插入图片描述
提交
在这里插入图片描述
将修复好的内容合并到master分支上
在这里插入图片描述
最后切回dev分支进行git stash pop将指定的暂存的修改恢复继续进行开发
在这里插入图片描述
最后再一次add,commit就好了,再切回master分支上进行合并

小结

今天的分享就到这里啦,如果本文存在遗漏或错误的地方,还请您能够指出!

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

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

相关文章

ElasticSearch - 基于 JavaRestClient 操作索引库和文档

目录 一、RestClient操作索引库 1.1、RestClient是什么&#xff1f; 1.2、JavaRestClient 实现创建、删除索引库 1.2.1、前言 1.2.1、初始化 JavaRestClient 1.2.2、创建索引库 1.2.3、判断索引库是否存在 1.2.4、删除索引库 1.3、JavaRestClient 实现文档的 CRUD 1.3…

数据结构复习重点代码——连载中

前言 本文中使用数据类型时&#xff0c;若无特殊需求&#xff0c;默认都采用int类型。 线性表 顺序表 定义 //静态定义 #define MaxSize 50 typedef struct{int data[MaxSize];//采用数组的形式定义int length; //表示顺序表的长度 }seqList;//动态定义 #define InitSize …

【Git】配置SSH密钥实现Git操作免密

背景 在使用Git推送代码的时候&#xff0c;会默认需要输入密码。如果经常推送代码&#xff0c;那就需要经常输入密码&#xff0c;比较繁琐。所以Git也提供了免密登录的功能。 Git本身支持两种协议对远程Git仓库进行访问&#xff1a;HTTPS、SSH。两种方式有一定的区别&#xf…

GO语言:文件操作之写入文件及iota生成常量

目录标题 一、Writing files 写入文件1. Writing string to a file 写入字符串2. Writing bytes to a file 写入字节3. Writing strings line by line to a file 一行一行写入4. Appending to a file 添加内容5. Writing to file concurrently 并发写入文件 二、iota 常量生成器…

UE学习记录06----根据Actor大小自适应相机位置

背景&#xff1a; staticMesh 会根据业务需要随时变化&#xff0c;然后通过staticMesh的大小自适应相机位置&#xff0c;捕捉画面用来预览该模型&#xff0c;使模型在画布中不会太大导致显示不全&#xff0c;也不会太小 参考&#xff1a; UE实现相机聚焦物体功能_右弦GISer的…

机器学习小白理解之一元线性回归

关于机器学习&#xff0c;百度上一搜一大摞&#xff0c;总之各有各的优劣&#xff0c;有的非常专业&#xff0c;有的看的似懂非懂。我作为一名机器学习的门外汉&#xff0c;为了看懂这些公式和名词真的花了不少时间&#xff0c;还因此去着重学了高数。 不过如果不去看公式&…

Linux中定时任务以及开机自启相关

一.定时任务 1.编辑任务 crontab -e #实际的地址在/var/spool/cron #编写任务 1 * * * * /myproject/sql.sh 2.查询任务 crontab -l 3.Cron表达式 * * * * *&#xff1a;每分钟都运行0 * * * *&#xff1a;每小时的第0分钟运行0 2 * * *&#xff1a;每天凌晨2点运行0 2 *…

WebGL笔记:使用鼠标绘制多个线条应用及绘制动感线性星座

使用鼠标绘制多个线条 多个线条&#xff0c;肯定不是一笔画过的&#xff0c;而是多次画的线条既然是多线&#xff0c;那就需要有个容器来管理它们 1 &#xff09;建立容器对象 建立一个 lineBox 对象&#xff0c;作为承载多边形的容器 // lineBox.js export default class …

记忆化搜索,901. 滑雪

901. 滑雪 - AcWing题库 给定一个 R 行 C 列的矩阵&#xff0c;表示一个矩形网格滑雪场。 矩阵中第 i行第 j 列的点表示滑雪场的第 i 行第 j列区域的高度。 一个人从滑雪场中的某个区域内出发&#xff0c;每次可以向上下左右任意一个方向滑动一个单位距离。 当然&#xff0…

数据结构--栈的实现

数据结构–栈的实现 1.栈的概念和结构&#xff1a; 栈的概念&#xff1a;栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出LIFO&#xff08;Las…

SpringMVC 学习(三)注解开发

4. 注解开发 4.1 环境搭建 (1) 新建 maven 模块 springmvc-03-annotation (2) 确认依赖 确认方法同 3(2)&#xff0c;手动导入发布依赖见3(11) <!--资源过滤--> <build><resources><resource><directory>src/main/java</directory>&…

PostMan的学习

PostMan的学习 目录 环境变量和全局变量接口关联内置动态参数以及自定义动态参数实现业务闭环Postman断言批量运行collection数据驱动之CSV文件和JSON文件测试必须带请求头的接口Mock Serviers 服务器Cookie鉴权NewmanPostManNewManjenkins实现接口测试持续集成 参考资料&am…

Kerberos常见报错汇总

一.kdb5_util: Password mismatch while reading master key from keyboard 1>.错误复现 2>.错误原因分析 在初始化Kerberos数据库时需要输入密码&#xff0c;2次密码输入不一致就会导致该错误。 3>.解决方案 重新执行"kdb5_util -r YINZHENGJIE.COM create -s…

Mendix中的依赖管理:npm和Maven的应用

序言 在传统java开发项目中&#xff0c;我们可以利用maven来管理jar包依赖&#xff0c;但在mendix项目开发Custom Java Action时&#xff0c;由于目录结构有一些差异&#xff0c;我们需要自行配置。同样的&#xff0c;在mendix项目开发Custom JavaScript Action时&#xff0c;…

数据集笔记:旧金山共享单车OD数据

数据地址&#xff1a;System Data | Bay Wheels | Lyft

使用不同尺寸的传感器拍照时,怎么保证拍出同样视场范围的照片?

1、问题背景 使用竞品机做图像效果对比时&#xff0c;我们通常都会要求拍摄的照片要视场范围一致&#xff0c;这样才具有可比性。之前我会考虑用同样焦距、同样分辨率的设备去拍照对比就可以了&#xff0c;觉得相机的视场范围只由镜头焦距来决定。 但如果对于不同尺寸的传感器…

Spring修炼之旅(3)自动装配与注解开发

一、自动装配说明 1.1概述 自动装配是使用spring满足bean依赖的一种方法 spring会在应用上下文中为某个bean寻找其依赖的bean。 1.2装配机制 Spring中bean有三种装配机制&#xff0c;分别是&#xff1a; 在xml中显式配置&#xff1b; 在java中显式配置&#xff1b; 隐式…

【Java 进阶篇】MySQL 数据控制语言(DCL):管理用户权限

MySQL 是一个强大的关系型数据库管理系统&#xff0c;提供了丰富的功能和选项来管理数据库和用户。数据库管理员&#xff08;DBA&#xff09;通常使用数据控制语言&#xff08;Data Control Language&#xff0c;简称 DCL&#xff09;来管理用户的权限和访问。 本文将详细介绍…

定义现代化实时数据仓库,SelectDB 全新产品形态全面发布

导读&#xff1a;9 月 25 日&#xff0c;2023 飞轮科技产品发布会在线上正式召开&#xff0c;本次产品发布会以 “新内核、新图景” 为主题&#xff0c;飞轮科技 CEO 马如悦全面解析了现代化数据仓库的演进趋势&#xff0c;宣布立足于多云之上的 SelectDB Cloud 云服务全面开放…

数据结构——堆(C语言)

本篇会解决一下几个问题&#xff1a; 1.堆是什么&#xff1f; 2.如何形成一个堆&#xff1f; 3.堆的应用场景 堆是什么&#xff1f; 堆总是一颗完全二叉树堆的某个节点总是不大于或不小于父亲节点 如图&#xff0c;在小堆中&#xff0c;父亲节点总是小于孩子节点的。 如图&a…