git的分支管理

✨前言✨

📘 博客主页:to Keep博客主页
🙆欢迎关注,👍点赞,📝留言评论
⏳首发时间:20246月19日
📨 博主码云地址:博主码云地址
📕参考书籍:《C++ Primer》《C++编程规范》
📢编程练习:牛客网+力扣网
**由于博主目前也是处于一个学习的状态,如有讲的不对的地方,请一定联系我予以改正!!!

Git中的分支

  • 1 理解分支
  • 2 创建与切换分支
  • 3 合并分支
  • 4 删除分支
  • 5 合并冲突
  • 6 分支策略管理
  • 7 BUG分支
  • 8 删除临时分支

1 理解分支

在版本回退⾥,我们已经知道,每次提交,Git都把它们串成⼀条时间线,这条时间线就可以理解为是⼀个分⽀。截⽌到⽬前,只有⼀条时间线,在Git⾥,这个分⽀叫主分⽀,即master分⽀。HEAD就不是指向提交,而是指向当前所在的分支!我们可以结合下图来理解:
在这里插入图片描述
也就是说,随着我们不断的提交,master分支也就会越来越长!

2 创建与切换分支

有下面两种方法:

第一种:

  • git branch 分支名 //创建分支
  • git checkout 分支名 //切换到该分支上
    在这里插入图片描述

第二种:

  • git checkout -b 分支名 //创建分支并且切换到该分支上
    在这里插入图片描述

查看分支的命令

git branch -a //查看有多少个分支,以及可以看到当前处于那个分支
在这里插入图片描述

我们学会了创建和切换分支,如果我们在dev分支上对某个文件进行操作,然后进行add,commit一系列操作后,在切换回master分支,我们可以发现对dev分支上改动的文件,在master分支上是看不见的,这是为什么呢?那是因为dev对应的才是最新的提交,而master并不是在最新的提交时间线上,所以就会看不到提交!如下图所示:
在这里插入图片描述

3 合并分支

为了使得master分支上可以看到最新的提交,我们可以通过将dev分支合并到master分支上!

git merge 分支名 //把该分支合并到当前所在的分支
在这里插入图片描述

我们可以发现这里有一个fast-forward,这个是分支的合并方式,在这里就是将master指向dev当前的提交,具体有哪些常见方式,我们在后面后介绍到的!这里有这样一个印象就行了!

4 删除分支

git branch -d 分支名

就是将不在使用的分支删除掉即可!原理图如下所示:
在这里插入图片描述

5 合并冲突

我们接下来看这样的一个场景,我们在master分支上对某个文件(本文是创建file1文件进行实验)进行修改并且提交,而在dev分支上对同一个文件进行修改并且提交!场景的原理图如下图所示:
在这里插入图片描述
在上述情况下进行合并,git只能试图把各自的修改合并起来,但是这种合并就有可能会出现冲突!我们使用合并命令:
在这里插入图片描述
出现上述修改冲突然后需要提交修改后的结果就说明出现了合并冲突,如何解决这样的一个冲突呢?我们可以打开冲突的文件:
在这里插入图片描述
我们可以发现的是Git会⽤<<<<<<<,=======,>>>>>>>来标记出不同分⽀的冲突内容,我们只需要处理掉这个冲突,在进行add,commit操作进行提交就行了!此时的原理图如下所示:
在这里插入图片描述
另外,我们还可以通过以下命令来查看分支的合并情况!

git log --graph --pretty=oneline --abbrev-commit

6 分支策略管理

在分支合并哪里,我们看到了fast-forward的合并方式,它是怎么合并的呢?它就是直接将master指针指向了dev指针所指向的地方,但是利用这种合并方式,会有一个问题,就是我们把dev分支删除了之后,我们分不清master是正常提交的,还是通过fast-forward方式进行合并得到的!也就是说会省略掉分支信息!但是在合并冲突哪里,就不会出现这样的问题,那是因为我们master有新的提交,dev也有新的提交,然后我们要对冲突处理最后提交!简单来说就是就是不是采用fast-forward方式进行合并!那么如何解决这个问题呢?在git中我们可以禁止使用fast-forward方式进行分支的合并!命令如下:

  • git merge --no-ff -m “合并说明” 分支名

–no-ff 参数,表⽰禁⽤ Fast forward 模式。禁⽤ Fast forward 模式后合并会创建⼀个新的 commit ,所以加上 -m 参数,把描述写进去!此时我们可以图解一下禁用与不禁用fast-forward的区别:
在这里插入图片描述
分支策略:在实际的开发中,master分支上存放的应该是稳定版本的代码,我们一般都是利用dev分支(可以存在多个开发的分支,多人共同协作开发)进行开发,在本地仓库上,我们是将master分支合并到dev上,进行代码测试,没问题之后,在合并到master分支上,然后在上传到远端仓库上进行部署!

7 BUG分支

顾名思义,其实就是专门帮助我们修复bug的分支,假如我们在dev分支上代码开发只进行了一部分,我们还不能进行提交,而master分支又出现了bug,又不想让这部分代码丢失,我们该怎么处理呢?我们应当使用如下命令,来隐藏工作区的内容,如果不隐藏,在master分支上的工作区也是看的见的(包括在BUG分支上),这个是我们不希望看到的,所以我们需要进行隐藏,在修复完bug之后再进行恢复!

  • git stash //隐藏工作区中内容
  • git status //查看工作区的状态

然后我们在创建BUG分支,修改bug,修改完之后,我们先将master分支合并到bug分支上进行测试,然后我们在合并到master分支上,然后我们在切换回dev分支,使用如下命令,查看隐藏工作现场:

  • git stash list

然后我们在利用下面的命令进行恢复现场,

  • git stash pop stash@{0} //删除指定的内容,不带红色的,默认删除的是第一个

恢复的同时会把stash也删了,我们还有另外一种恢复现场的方式,采⽤ git stash apply 恢复,但是恢复后,stash内容并不删除,我们需要⽤git stash drop stash@{0}来删除指定的内容;我们也可以多次stash,恢复的时候,先⽤ git stash list 查看,然后恢复指定的stash,⽤命令git stash apply stash@{0}!

8 删除临时分支

这种情况,我们创建了一个分支,开发了对应的代码并且已经提交了,但是还没有合并master分支,对于这种临时分支,我们要采用强制删除!

git branch -D 分支名

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

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

相关文章

003.Linux SSH协议工具

我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448; 入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448; 虚 拟 环 境 搭 建 &#xff1a;&#x1f449;&…

【Linux 基础】目录结构

Linux 的目录结构&#xff08;也称为文件系统结构&#xff09;是组织文件和目录的一种逻辑方式。每个文件和目录在文件系统中都有一个唯一的位置或路径。 Linux文件系统是整个操作系统的基础架构&#xff0c;对于系统的稳定运行、数据安全以及用户操作便捷性至关重要&#xff0…

k8s快速上手实操

前言 Kubernetes&#xff08;简称K8s&#xff09;是由Google开源的一个用于自动化部署、扩展和管理容器化应用程序的系统。自2014年发布以来&#xff0c;Kubernetes已经迅速成长为容器编排领域的标准&#xff0c;并在全球范围内得到了广泛的采用和认可。 Kubernetes作为现代容…

全新量子计算技术!在硅中可以生成大规模量子比特

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨沛贤/浪味仙 排版丨沛贤 深度好文&#xff1a;1600字丨6分钟阅读 摘要&#xff1a;研究人员利用气体环境在硅中形成被称为“色心”的可编程缺陷&#xff0c;首次利用飞秒激光&#xff0c;…

有关排序的算法

目录 选择法排序 冒泡法排序 qsort排序&#xff08;快速排序&#xff09; qsort排序整型 qsort排序结构体类型 排序是我们日常生活中比较常见的问题&#xff0c;这里我们来说叨几个排序的算法。 比如有一个一维数组 arr[8] {2,5,3,1,7,6,4,8},我们想要把它排成升序&#…

力扣1901.寻找峰值II

力扣1901.寻找峰值II 二分每一行 并用函数找出每一行中最大值的下标若最大值比其下面相邻的元素大 则上方一定存在峰值若最大值比其下面相邻的元素小 则下方一定存在峰值 class Solution {int indexmax(vector<int> &a){return max_element(a.begin(),a.end()) - …

FPGA早鸟课程第二弹 | Vivado 设计静态时序分析和实际约束

在FPGA设计领域&#xff0c;时序约束和静态时序分析是提升系统性能和稳定性的关键。社区推出的「Vivado 设计静态时序分析和实际约束」课程&#xff0c;旨在帮助工程师们掌握先进的设计技术&#xff0c;优化设计流程&#xff0c;提高开发效率。 课程介绍 关于课程 权威认证&…

Spire.PDF for .NET【文档操作】演示:如何删除 PDF 中的图层

借助Spire.PDF&#xff0c;我们可以在新建或现有pdf文档的任意页面中添加线条、图像、字符串、椭圆、矩形、饼图等多种图层。同时&#xff0c;它还支持我们从pdf文档中删除特定图层。 Spire.PDF for .NET 是一款独立 PDF 控件&#xff0c;用于 .NET 程序中创建、编辑和操作 PD…

Redis协议规范简介

Redis客户端使用为名为RESP&#xff08;Redis序列化协议&#xff09;的协议与Redis服务器进行通信。虽然该协议是专门为Redis设计的&#xff0c;但它也可以用于其他的CS软件项目的通信协议。 RESP可以序列化不同的数据类型&#xff0c;如整型&#xff0c;字符串&#xff0c;数…

wsl报错在BIOS中启用虚拟化

解决&#xff1a; Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All 以高级管理员身份运行powershell&#xff0c;执行如上命令。

在哪可以查到全网的司法诉讼信息?

司法涉诉信息指的是再司法活动中形成的各种记录和资料&#xff0c;涵盖了诉讼案件的立案&#xff0c;审判&#xff0c;执行等各个环节的记录和文件。比如基本案件信息&#xff0c;开庭信息&#xff0c;审判信息&#xff0c;执行信息等。有时候还会涉及到被执行人&#xff0c;司…

4大利好因素释放顺风车市场潜力,嘀嗒出行即将登陆港交所

经历了十多年发展&#xff0c;共享出行行业即将迎来第一个上市公司——专注顺风车和智慧出租车的嘀嗒出行。 近日&#xff0c;嘀嗒出行通过了港交所聆讯&#xff0c;根据招股书&#xff0c;嘀嗒出行2023年顺风车搭乘次数和交易额分别为约1.3亿次和86亿元&#xff0c;同比分别增…

如何设置antv x6中stencil节点的拖动样式?

问题 在设计自定义地图的时候&#xff0c;用到了antv x6 stencil&#xff0c;但是拖动里面的节点时&#xff0c;里面的文字总是总是显示不全&#xff0c;只有68px&#xff0c;如何把宽度设置宽一点呢&#xff1f; 过程 这个问题折磨了半天&#xff0c;最后仔细看看文档&#…

vue-cli 根据文字生成pdf格式文件 jsPDF

1.安装jspdf npm install jspdf --save 2.下载ttf格式文件 也可以用C:\Windows\Fonts下的字体文件&#xff0c;反正调一个需要的ttf字体文件就行&#xff0c;但有的字体存在部分字体乱码现象 微软雅黑ttf下载地址&#xff1a; FontsMarket.com - Download Microsoft YaHei …

XMLXXE实体注入

XML&XXE实体注入 原理 XML被设计为传输和存储数据&#xff0c;XML文档结构包括XML声明、DTD文档类型定义&#xff08;可选&#xff09;、文档元素&#xff0c;其焦点是数据的内容&#xff0c;其把数据从HTML分离&#xff0c;是独立于软件和硬件的信息传输工具。等同于JSO…

PPP-AR代码解析

本文主要解析函数pppamb&#xff08;&#xff09;&#xff1b; 前面的浮点的基础&#xff0c;可以参考下面的内容&#xff0c;不过解析的不是同一版本代码&#xff0c;逻辑基本一样 RTKLIB中ppp代码解析_rtklib ppp-rtk-CSDN博客 pppamb&#xff08;&#xff09;{ 1、 ave…

位图法-有效的数独

有效的数独&#xff0c;主要是判断每行每列每宫有无重复元素。 每行每列用二重循环&#xff0c;每宫比较复杂&#xff0c;需要考虑每一宫的坐标与二重循环ij对应关系 行i&#xff0c;每一宫3行&#xff0c;3列 x3*(i/3)j/3 y3*(i%3)j%3

如何覆盖!important修饰的属性

最简单的方法 如果这个!important修饰的属性 是自己的写的&#xff0c;去掉这种写法&#xff0c;使用优先级的方式来写这个属性&#xff08;.outter .inner 的优先级就会比 。outter的优先级高&#xff09; 复杂的方法&#xff1a;用魔法打败魔法 但是这个样式来自于全局css&am…

Maven 插件列表详解

Maven 是一个强大的项目管理和构建工具&#xff0c;广泛应用于 Java 项目中。作为一款优秀的构建管理工具&#xff0c;Maven 不仅提供了标准化的项目结构和依赖管理&#xff0c;还通过其丰富的插件系统&#xff0c;极大地扩展了其功能和灵活性。无论是代码编译、测试、打包&…

【NOI-题解】1431. 迷宫的第一条出路

文章目录 一、前言二、问题问题&#xff1a;1431. 迷宫的第一条出路 三、感谢 一、前言 二、问题 问题&#xff1a;1431. 迷宫的第一条出路 类型&#xff1a;深度搜索、回溯、路径打印 题目描述&#xff1a; 已知一 NN 的迷宫&#xff0c;允许往上、下、左、右四个方向行走…