【Git】—— 分⽀的基本操作

news2025/1/11 11:38:54

目录

(一)理解分⽀

(二)创建分⽀

(三)切换分⽀

(四)合并分⽀

(五)删除分⽀

总结


(一)理解分⽀

本章开始介绍 Git 的杀⼿级功能之⼀(注意是之⼀,也就是后⾯还有之⼆,之三……):分⽀。分⽀就 是科幻电影⾥⾯的平⾏宇宙,当你正在电脑前努⼒学习 C++ 的时候,另⼀个你正在另⼀个平⾏宇宙⾥ 努⼒学习 JAVA。
如果两个平⾏宇宙互不⼲扰,那对现在的你也没啥影响。不过,在某个时间点,两个平⾏宇宙合并
了,结果,你既学会了 C++ ⼜学会了 JAVA!
再来理解⼀下HEAD,HEAD 严格来说不是指向提交,⽽是指向master,master才是指向提交的,所 以,HEAD 指向的就是当前分⽀。

每次提交,master分⽀都会向前移动⼀步,这样,随着你不断提交,master分⽀的线也越来越⻓,⽽ HEAD只要⼀直指向master分⽀即可指向当前分⽀。

通过查看当前的版本库,我们也能清晰的理出思路:


(二)创建分⽀

Git ⽀持我们查看或创建其他分⽀,在这⾥我们来创建第⼀个⾃⼰的分⽀ dev ,对应的命令为:

 【说明】

  • 当我们创建新的分⽀后,Git 新建了⼀个指针叫 dev; 
  • * 表⽰当前 HEAD 指向的分⽀是 master 分 ⽀。
💨  另外,可以通过⽬录结构发现,新的 dev 分⽀:

💨 我们还发现⽬前 dev 和 master 指向同⼀个修改

💨  并且也可以验证下 HEAD ⽬前是指向 master


(三)切换分⽀

那如何切换到 dev 分⽀下进⾏开发呢?使⽤ git checkout 命令即可完成切换,⽰例如下:

  • 我们发现 HEAD 已经指向了 dev,就表⽰我们已经成功的切换到了 dev 上

我们还可以打印看看进行验证:

  • 接下来,在 dev 分⽀下修改 Test ⽂件,新增⼀⾏内容,并进⾏⼀次提交操作:

  •  现在,dev 分⽀的⼯作完成,我们就可以切换回 master 分⽀:

  •  切换回 master 分⽀后,发现ReadMe⽂件中新增的内容不⻅了!!!赶紧再切回 dev 看看

  • 在 dev 分⽀上,内容还在。为什么会出现这个现象呢?我们来看看 dev 分⽀和 master 分⽀指向,发现两者指向的提交是不⼀样的:

  • 看到这⾥就能明⽩了,因为我们是在dev分⽀上提交的,⽽master分⽀此刻的提交点并没有变

此时的状态如图如下所⽰:

当切换到 master 分⽀之时,HEAD 就指向了 master,当然看不到提交了!!

(四)合并分⽀

  • 为了在 master 主分⽀上能看到新的提交,就需要将 dev 分⽀合并到 master 分⽀

⽰例如下:

git merge 命令⽤于合并指定分⽀到当前分⽀。合并后,master 就能看到 dev 分⽀提交的内容
了。此时的状态如图如下所⽰。

【注意】
  1. Fast-forward 代表“快进模式”,也就是直接把master指向dev的当前提交,所以合并速度⾮常快;
  2.  当然,也不是每次合并都能 Fast-forward,我们后⾯会讲其他⽅式的合并。


(五)删除分⽀

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

  •  ⽽可以在其他分⽀下删除当前分⽀,如:

  •  此时的状态如图如下所⽰:

因为创建、合并和删除分⽀⾮常快,所以Git⿎励你使⽤分⽀完成某个任务,合并后再删掉分⽀,这和 直接在master分⽀上⼯作效果是⼀样的,但过程更安全。


总结

以上便是分支的增删的基本操作了,但是在合并分支的时候会存在一定的冲突问题。在下篇,我们将就合并冲突进行讲解。

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

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

相关文章

结构型设计模式:装饰器模式

设计模式专栏目录 创建型设计模式-单例模式/工厂模式/抽象工厂 行为型设计模式:模板设计模式/观察者设计模式/策略设计模式 结构型设计模式:装饰器模式 C#反射机制实现开闭原则的简单工厂模式 目录 设计模式专栏目录设计模式分类设计模式的设计原则装饰…

Java体系总览

一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定 JVM参数及调优 Java对象模型 …

windows环境下docker数据迁移到其他盘

docker安装在C盘,使用一段时间后,C盘爆满。因此想把C盘中的数据迁移到其他盘,以释放C盘空间。分为以下步骤: 1、启动docker软件,打开PowerShell并切换到Docker Compose配置文件的目录。 Docker Compose配置文件的目录…

zabbix监控docker容器

1、安装zabbix-agent2插件 需要被监控的主机安装zabbix-agent2插件,请参考另一篇博客进行安装。原有的zabbix-agent插件不支持docker容器的监控的。agent的功能,agent2也都有 http://t.csdn.cn/dccqw 并在被监控的主机中开放10050端口 firewall-cmd --z…

【雕爷学编程】Arduino动手做(171)---micro:bit 开发板2

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这…

用于事实核查的知识图谱比较推理:问题定义和算法 7.24

用于事实核查的知识图谱比较推理:问题定义和算法 摘要介绍问题定义知识段(Knowledge Segment KS)共性不一致性集体共性集体不一致性成对比较推理集体比较推理 知识片段提取Predictate-Predictate Similarity特定边的知识段特定子图知识段 比较…

[巅峰极客2023]wp复现

文章目录 [巅峰极客2023]复现miscwelcomefoundmesong学生物 webunserializesql [巅峰极客2023]复现 misc welcome base64解码 foundme find.DMP文件 使用flag查找工具找到关键字: flag.avif 放入010中看到这个hint,找到好几个avif: 将他…

Shedskin 使用

Shedskin是一个编译器工具,可以将Python代码编译为C语言。先说结论吧,这玩意现在就只是个玩具,因为使用ShedSkin编译的程序不能自由使用Python标准库,目前只支持大约17个常用模块: bisect collections ConfigParser c…

4.python设计模式【建造者模式】

内容: 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。建造者模式与抽象工厂模式相似,也用来创建复杂对象。主要区分是建造者模式着重一步步构造复杂对象,而抽象工厂模式着重于多个系列的产品对象。角色&#xf…

嵌入式做单片机的门槛

我个人认为并不高,如果你非要有个量化的标准,那我觉得初中文凭都能学会并且能以此为生的程度。 文凭嘛,就是一张纸,并代表不了什么。 前几年,我接了一个帮研究生写毕业论文的单子,果然没让我失望&#xf…

实现Android屏幕分享和视频聊天(附源码)

在一些有人际互动的手机APP中,增加语音视频聊天功能是一个常见的需求。而现在,更进一步,在某些场景下,我们需要能将自己的手机屏幕分享给他人,或者是观看他人的手机屏幕。那么,这些常见的功能是如何实现的了…

reset master

1 reset master 执行 reset master; 后 变化1 :位点被重置 变化2 binlog日志被清空 原来的binlog被删除 从 mysql-bin.000001 开始记录。

【ribbon】Ribbon的负载均衡和扩展功能

Ribbon的核心接口 参考:org.springframework.cloud.netflix.ribbon.RibbonClientConfiguration IClientConfig:Ribbon的客户端配置,默认采用DefaultClientConfigImpl实现。IRule:Ribbon的负载均衡策略,默认采用ZoneA…

【GPT4结对编程】word文档导出功能GPT4来实现

需求背景 最近产品增加了一个导出word文档的需求,之前有导出过pdf格式、excel格式、csv格式,但还没导出过word文档。 开源框架调研 我们的后端服务主要是用golang,因此首先想到的是golang相关的开源工具,找到2个。 unioffice …

【网络安全】蜜罐部署实战DecoyMini攻击诱捕

蜜罐部署实战&DecoyMini攻击诱捕 前言一、蜜罐1. 概念2. 蜜罐溯源常见方式3. 蜜罐分类 二、蜜罐项目实战1. 配置DecoyMini1.1 命令行窗口运行1.2 修改配置信息 2. 登录DecoyMini3. 克隆网站3.1 增加仿真网站3.2 增加诱捕器3.3 查看端口监听3.4 克隆成功(蜜罐&am…

Qt : day1

1.聊天界面 #include "widget.h"Widget::Widget(QWidget *parent): QWidget(parent) {qDebug() << this->size(); //获取当前页面尺寸this->setFixedSize(500, 600); //设置固定尺寸this->setWindowTitle("聊天框"); //设置窗口…

解决Cannot resolve plugin org.apache.maven.plugins:xxxxxxxx

解决Cannot resolve plugin org.apache.maven.plugins:xxxxxxxx 方法一、检查配置设置 下图中三个方框圈出来的地方设置为自己的下载的maven地址&#xff0c;配置文件地址&#xff0c;仓库地址。刷新maven。 我个人试过没用&#xff0c;不过网上有的朋友用这个方法解决了。 …

CBC字节翻转攻击介绍 例题

知识导入&#xff08;AES-CBC模式&#xff09; 加密过程 1、首先将明文分组(常见的以16字节为一组)&#xff0c;位数不足的使用特殊字符填充。 2、生成一个随机的初始化向量(IV)和一个密钥。 3、将IV和第一组明文异或。 4、用key对3中xor后产生的密文加密。 5、用4中产生的密文…

大厂案例 - 腾讯万亿级 Elasticsearch 架构实践

文章目录 概述提纲益处正文一、Elasticsearch 简介0. 应用领域搜索引擎可观测性安全检测发展现状 1.系统架构集群架构物理数据模型查询 2.腾讯应用现状搜索领日志实时分析时序数据 二、技术挑战1.可用性2.成本3.性能 三、架构设计实践1.可用性优化1.1 解决方案2.2 集群扩展性2.…

RK3588平台开发系列讲解(LCD篇)LCD的分辨率和像素格式

文章目录 一、分辨率二、像素格式三、LCD成像步骤四、LCD屏幕时序4.1、行显示时序4.2、帧显示时序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢液晶 LCD 显示器是由两片平行的玻璃基板组成,两片平行的玻璃基板之间放置了一个液晶盒。在下基板玻璃上,有一组被称为薄…