【Git】分支管理的基本操作

文章目录

    • 理解分支
    • 分支的本质
    • 主分支
    • 创建分支
    • 切换分支
    • 合并分支
    • fast-forward模式
    • 删除分支
    • 合并冲突问题

理解分支

分支管理是git的一个核心功能。在git中,分支是用来独立开发于某个功能或者修复某个bug的一种方式。就像是《火影忍者》中的鸣人使用分身去妙蛙山修炼,最后还能将所有的修炼经验返还给本体一样。git支持分支的同时,也支持将这些分支合并到master上了。

分支的本质

每一个分支都有一个指针指向最新的提交,就好比我们的master指向的就是主分支的最新提交。而HEAD指针指向的就是当前的工作分支。切换HEAD的指向,就相当于在切换分支。
在这里插入图片描述

主分支

Git 默认创建的第一个分支是 master 分支(或 main 分支)。它通常被认为是主要开发线的起点。所以我们说的主分支一般都是指master分支。

创建分支

考虑使用以下指令创建分支

git branch newbranch

创建一个名为newbranch的新分支
直接使用git branch可以查看当前分支:
在这里插入图片描述
查看.git/HEAD文件内容就能直到当前HEAD指向哪一个分支:
在这里插入图片描述
在这里插入图片描述

切换分支

使用git checkout指令切换当前分支,即切换HEAD指向的分支:
在这里插入图片描述

在这里插入图片描述
当我们成功切换分支之后,所有的提交都是在新的分支上。
注意,在新的分支上的提交是不会干扰master分支的,且也看不到后续master分支的提交信息----“你走你的,我走我的

合并分支

当我们试图将分支上的提交重新整合到master,即需要合并某个分支时,考虑git merge指令(切换到master分支执行):
在这里插入图片描述
git merge 命令⽤于合并指定分⽀到当前分⽀。合并后,master就能看到dev分⽀提交的内容了
在这里插入图片描述

fast-forward模式

fast-forward模式是分支合并时的一种简单情况,通常用于将一个分支的更改合并到另一个分支时。“Fast-forward” 合并的优点是简单快速,因为它只是移动指针而不需要额外的合并步骤。但它也有一个缺点,即不会保留合并操作的历史信息,因为合并操作并没有实际发生。

删除分支

考虑以下指令git branch -d devdev为要删除的分支:
在这里插入图片描述
注意如果现在就在dev分支下是不能删除dev分支的,需要先切换分支。
在这里插入图片描述
通常来说,我们一般合并完某个分支之后,会将这个分支删除。就像是创建子进程去完成任务回来之后,也就不需要它了。

合并冲突问题

分支合并并非每次都能成功,有的时候会发生合并冲突的问题。这种冲突一般是两个分支对同一个文件的同一个部分进行了修改,当要合并的时候git无法确定合并这些修改。

比如我们现在master分支下有一个readme文件,该文件内容为:
在这里插入图片描述
接下来我们创建一个dev分支,在master分支和dev分支中同时修改readme文件中的第二行内容并提交到版本库中。
master分支下:
在这里插入图片描述
在这里插入图片描述
master分支下:
在这里插入图片描述
接下来合并:
在这里插入图片描述
提示合并冲突,因为这时候两个分支对同一文件的同一行内容做出修改,git不知道该怎么合并。且readme文件会保留冲突信息,Git会⽤<<<<<<<,=======,>>>>>>>来标记出不同分⽀的冲突内容,如下所⽰:
在这里插入图片描述

这个时候只能手动编辑冲突的文件,将冲突的部分修改为满足需求的版本。可以将某个分支的修改删除,保留另一个。或者结合一下两者的修改。
解决冲突:
在这里插入图片描述
一定要提交修正后的结果
在这里插入图片描述
另外,用指令git log --graph --pretty=oneline --abbrev-commit可以较为形象的看到分支的合并情况:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

ansible-copy用法

目录 概述实践不带目录拷贝带目录拷贝 概述 ansible copy 常用用法举例 不带目录拷贝&#xff0c;拷贝的地址要写全 带目录拷贝&#xff0c;拷贝路径不要写在 dest 路径中 实践 不带目录拷贝 # with_fileglob 是 Ansible 中的一个循环关键字&#xff0c;用于处理文件通配符匹…

【强训笔记】day4

NO.1 思路&#xff1a;利用滚动数组&#xff0c;迭代一个Fibonacci数列&#xff0c;给出三个值进行循环迭代&#xff0c;当n<c时&#xff0c;说明n在b和c之间&#xff0c;这里只需要返回c-n和n-b的最小值就可以了。 代码实现&#xff1a; #include<iostream>using n…

BLIP-2论文精读

概述 由于大规模模型的端到端训练&#xff0c;视觉和语言预训练的成本越来越高&#xff0c;BLIP-2是一种通用且高效的预训练策略&#xff0c;可以从现成的冻结的预训练图像编码器和冻结的大型语言模型引导视觉语言预训练。 模型主体框架 BLIP-2采用了一个轻量级的查询转换器Q…

【Docker】Docker的网络与资源控制

Docker网络实现原理 Docker使用Linux桥接&#xff0c;在宿主机虚拟一个Docker容器网桥(docker0)&#xff0c;Docker启动一个容器时会根据Docker网桥的网段分配给容器一个IP地址&#xff0c;称为Container-IP&#xff0c;同时Docker网桥是每个容器的默认网关。因为在同一宿主机内…

什么是外汇杠杆交易?

外汇杠杆交易是目前的外汇交易市场中&#xff0c;投资者进行外汇交易的重要方式&#xff0c;通过这样的交易方式&#xff0c;投资者就有机会进行以小搏大的交易&#xff0c;他们的交易就有可能会更成功&#xff0c;因此&#xff0c;投资者应该对这样的交易方式进行了解&#xf…

【车展直播(1)】电机的知识

背景&#xff0c;最近在2024 北京车展&#xff0c;然后需要做一些直播讲解。 首先需要关注的是电动车的电机。其实这个东西吧&#xff0c;我不能算是完全知道&#xff0c;但是自己做做PWM 控制器&#xff0c;MOS管驱动&#xff0c;做两轮电机Motor 的控制这种基础的工作还是有…

Docker数据管理+镜像的创建

Docker容器数据管理方式 数据卷 数据卷是一个供容器使用的特殊目录&#xff0c;位于容器中&#xff0c;可将宿主的目录挂载到数据卷上&#xff0c;对数据卷的修改操作立即可见&#xff0c;并且更新数据不会影响镜像&#xff0c;从而实现数据在宿主机与容器之间的迁移。数据卷…

C#反射应用

1.根据类名名称生成类实例 CreateInstance后面的参数部分一定要和所构造的类参数数量对应&#xff0c;即使设置参数默认值&#xff0c;也不可省略。 2.只知道类名&#xff0c;需要将该类作为参数调用泛型接口。 3.只知道类名&#xff0c;需要将该类的数组作为参数调用泛型接口…

CentOS yum make cache/clean all 提示yum lock

错误信息 Another app is currently holding the yum lock; waiting for it to exit 问题描述&#xff1a; 已加载插件&#xff1a;fastestmirror Repository base is listed more than once in the configuration Repository updates is listed more than once in the config…

数组和指针经典笔试题讲解

目录 创作不易&#xff0c;如对您有帮助&#xff0c;还望一键三连&#xff0c;谢谢&#xff01;&#xff01;&#xff01; 1.sizeof和strlen的对比 1.1sizeof 1.2strlen 1.3sizeof和strlen对比 2.数组笔试题讲解 数组名的理解 2.1一维数组 2.2字符数组 题目一&#x…

MacOS 文件系统种类及介绍

MacOS 文件系统种类 详细介绍 详细介绍 从图片中我们可以看到一个文件系统选择器的界面&#xff0c;列出了多种不同的文件系统选项。这些文件系统各有其特点和用途&#xff0c;以下是它们之间的主要区别&#xff1a; APFS&#xff1a;Apple File System&#xff0c;是苹果公司为…

移动零 ----双指针

题目链接 题目: 分析: 上述题目, 是将数组分块, 分为前半非零, 后半零, 这种数组分块题我们首先想到双指针 思路: 定义两个指针, 一个cur 一个dest, cur用来遍历数组, dest 指向分界处的第一个零位置, 将数组分块首先让cur 0; dest 0;cur 遍历数组, 如果cur 0, 那么cur…

windows环境下安装Apache

首先apache官网下载地址&#xff1a;http://www.apachelounge.com/download/按照自己的电脑操作系统来安装 这里我安装的是win64 主版本是2.4的apache。 然后解压压缩包到一个全英文的路径下&#xff01;&#xff01;&#xff01;一定一定不要有中文 中文符号也不要有&#xff…

Vue入门到关门之Vue介绍与使用

一、vue框架介绍 1、什么是Vue&#xff1f; Vue (读音 /vjuː/&#xff0c;类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是&#xff0c;Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层&#xff0c;不仅易于上手&#xff0c;还便于与…

OpenHarmony语言基础类库【@ohos.util.PlainArray (非线性容器PlainArray)】

PlainArray可用于存储具有关联关系的key-value键值对集合&#xff0c;存储元素中key值唯一&#xff0c;key值类型为number类型&#xff0c;每个key对应一个value。 PlainArray依据泛型定义&#xff0c;采用轻量级结构&#xff0c;集合中key值的查找依赖于二分查找算法&#xf…

65、二分-在排序数组中查找元素的第一个和最后一个位置

思路&#xff1a; 寻找数组中的目标值第一个和最后一个&#xff0c;如果不存在哪儿就是返回-1。 第一种方式直接线性遍历&#xff0c;找到目标值记录当前下标。继续寻找下一个不等于目标值&#xff0c;说明下一个目标值的下标就是结尾。直接返回。 第二种方式通过使用二分法…

《HCIP-openEuler实验指导手册》1.7 Apache虚拟主机配置

知识点 配置步骤 需求 域名访问目录test1.com/home/source/test1test2.com/home/source/test2test3.com/home/source/test3 创建配置文件 touch /etc/httpd/conf.d/vhost.conf vim /etc/httpd/conf.d/vhost.conf文件内容如下 <VirtualHost *.81> ServerName test1.c…

基于Python+Selenium的web自动化测试框架详解

简介 随着Web应用程序的广泛应用和不断发展&#xff0c;Web自动化测试已经成为软件质量保证中的一个重要环节。而PythonSelenium作为一组强大的工具和框架&#xff0c;已经成为Web自动化测试领域中的热门技术之一。PythonSelenium可以帮助我们快速、准确地模拟用户行为和操作&…

电脑教程1

一、介绍几个桌面上面的软件 1、火绒&#xff1a;主要用于电脑的安全防护和广告拦截 1.1 广告拦截 1.打开火绒软件点击安全工具 点击弹窗拦截 点击截图拦截 拦截具体的小广告 2、向日葵远程控制&#xff1a;可以通过这个软件进行远程协助 可以自己去了解下 这个软件不要…

BP算法-即误差反向传播法简介

BP算法-即误差反向传播法简介 1986年 反向传播算法&#xff08;back propagation&#xff0c;简称BP模型&#xff09;是1986年由Rumelhart、Hinton和Williams为首的科学家提出的概念&#xff0c;是用于多层神经网络训练的著名算法&#xff0c;有理论依据坚实、推导过程严谨、概…