【Git版本控制器】第四弹——分支管理,合并冲突,--no-ff,git stash
🎁个人主页:我们的五年
🔍系列专栏:Linux网络编程
🌷追光的人,终会万丈光芒
🎉欢迎大家点赞👍评论📝收藏⭐文章

相关笔记:
https://blog.csdn.net/djdjiejsn/category_12893502.html
前言:
分布式版本控制系统(Distributed Version Control System,简称 DVCS)是一种将代码仓库完整地复制到每个开发者本地的版本控制系统。与集中式版本控制系统(如 SVN)不同,分布式版本控制系统中的每个开发者都拥有代码仓库的完整副本,包括所有的历史记录、分支和标签等信息。
目录
1.分支
1.1认识分支:
1.2创建分支:
1.3切换分支
1.4 在分支进行代码操作
2分支合并
2.1未发生合并冲突的合并:
2.2发生冲突的合并
3.删除分支:
4.Bug分支
1.分支
1.1认识分支:
在前面就讲过每一次提交都会有记录,有一条线,这是master的主分支。然而,我们还可以创建其他的分支,进行分支操作,分支编写代码。
下面就是没其他其他分支的master分支。
git log --graph --abbrev-commit

1.2创建分支:
git branch进行创建分支,没有加名字就是查看当前所有的分支,加上就是创建分支
git branch //查看所有的分支
git branch (分支名) //创建分支
比如我查看我现在的分支:
现在只有一个分支:master分支,然后我们创建了dev1,dev2分支。
然后就再次用git branch进行查看分支就有三个了。
* 绿色的就是当前所在的分支。*表示HEAD指向的哪个分支。


1.3切换分支
前面的git checkout -- 是撤销工作区的修改,撤销到最近一次的暂存区或者版本库。
但是不加--的意思就是分支切换了。
git checkout (分支名) //分支切换

此时的HEAD就指向dev1分支了。

1.4 在分支进行代码操作
我们在dev1分支进行代码编写,然后完成一次add,commit操作以后,进行的就是dev分支进行操作。而且在其他分支下是看到这个新增的代码的。
在dev1新增,并且保存,在master分支,还有dev2分支都是看不到的。

要想在master分支看到,就要在master进行合并。
2分支合并
2.1未发生合并冲突的合并:
使用git merge进行分支合并。
git merge (分支名)

然后我们进行查看,就可以看到dev分支的内容了。
这时候就是正常的合并,没有出现合并冲突的。
特别注意一下Fast-forward这个,ff合并,不会产生新的commit信息。
下面的最新一次信息还是devcommit产生的信息。

这个用图示来解释就是master直接指向dev1分支了。
master直接就指向最新一次的dev1进行的commit。

简化的就是这样了:

正常情况下 ,merge如果没有发生冲突,也没有写--no-ff 进行合并,那么就是Fast forward模式进行合并,这种合并不会产生新的commit。这种合并,如果以后把分支删除了,就分辨不出来这部分是merge到master里面来的,还是正常master,commit提交的。所以我们不建议使用Fast forward模式进行操作。而是每次merge时都要--no-ff,表示不要进行Fast forward模式进行合并。
加上这个选项以后,就要-m "commit描述信息".
这样就会形成一个新的commit。
2.2发生冲突的合并
这种情况就要手动进行代码修改,然后再进行一次commit。
Auto-merging file1
CONFLICT (content): Merge conflict in file1
Automatic merge failed; fix conflicts and then commit the result.

提示信息说,自动合并出错,需要手动fix,然后进行commit最后的结构。
然后我们打开我们的file1
aaaaaaaaaaaaaaaaaa
dev1 add bbbbbbbbb
<<<<<<< HEAD
master master master
=======
dev dev dev dev dev
>>>>>>> dev
<<<<<<<<HEAD到=======是当前分支的内容。
=======到>>>>>>dev是dev分支修改的内容。
然后我们想要怎么修改,我们手动进行修改,再进行commit。
如果没有发生冲突,也是可以用--no-ff 进行mege形成新的commit的。

3.删除分支:
当分支合并以后,分支就基本没用了,我们就可以把分支删除了,使用的命令是:
git branch -d (已经合并的分支名)
这个只能删除已经合并的分支。
不能删除还没有合并的分支。
删除没有合并的分支,要d变为D才能删除。
git branch -D (未合并的分支名)
4.Bug分支
git stash的作用是保护还没有commit的工作区和暂存区。
git stash 的主要用途:
临时保存更改:当你正在开发某个功能或修复某个问题时,突然需要切换到另一个任务,但又不想提交当前未完成的更改。
清理工作区:在切换分支或合并代码之前,需要清理工作区,但又不想丢失当前的更改。
快速切换任务:在多个任务之间快速切换,而不需要频繁提交和回滚更改。

//保存当前更改到 Stash
git stash//切换到修复问题的分支
git checkout fix-branch//修复问题并提交
git add .
git commit -m "Fix urgent issue"//切换回原来的分支
git checkout feature-branch//重新应用保存的更改
git stash apply
//将stash放到工作区
git stash pop

相关文章:
【Git版本控制器】第四弹——分支管理,合并冲突,--no-ff,git stash
🎁个人主页:我们的五年 🔍系列专栏:Linux网络编程 🌷追光的人,终会万丈光芒 🎉欢迎大家点赞👍评论📝收藏⭐文章 相关笔记: https://blog.csdn.net/djd…...
Elasticsearch除了用作查找以外,还能可以做什么?
前言 Elasticsearch用于实时数据分析、日志存储、业务智能等。还有日志与监控、多租户和安全性。以及应用场景包括日志分析、公共数据采集、全文搜索、事件数据、数据可视化。处理错误拼写和支持变体,不过这些可能还是属于搜索优化。企业搜索、日志管理、应用监控、…...
Gradio全解11——使用transformers.agents构建Gradio UI(6)
大模型WebUI:Gradio全解11——使用transformers.agents构建Gradio UI(6) 前言本篇摘要11. 使用transformers.agents构建Gradio UI11.6 通过agents构建Gradio UI11.6.1 ChatMessage数据类1. 数据结构2. 例程11.6.2 构建Gradio UI示例1. 代码及运行2. 代码解读参考文献前言 本…...
自定义实现简版状态机
状态机(State Machine)是一种用于描述系统行为的数学模型,广泛应用于计算机科学、工程和自动化等领域。它通过定义系统的状态、事件和转移来模拟系统的动态行为。 基本概念 状态(State):系统在某一时刻的特…...
算法常见八股问题整理
1.极大似然估计和交叉熵有什么关系 在分类问题中,当我们使用softmax函数作为输出层时,最大化对数似然函数实际上等价于最小化交叉熵损失函数。具体来说,在多分类情况下,最大化该样本的对数似然等价于最小化该样本的交叉熵损失。 交…...
关于GeoPandas库
geopandas buildings gpd.read_file(shapefile_path) GeoDataFrame 对象有一个属性叫做 sindex 空间索引通常是基于 R-树 或其变体构建的,这些数据结构专为空间查询优化,可以显著提高查询效率,尤其是在处理大型数据集时。 buildings_sin…...
【漫话机器学习系列】103.学习曲线(Learning Curve)
学习曲线(Learning Curve)详解 1. 什么是学习曲线? 学习曲线(Learning Curve)是机器学习和深度学习领域中用于评估模型性能随训练过程变化的图示。它通常用于分析模型的学习能力、是否存在过拟合或欠拟合等问题。 从…...
电商运营中私域流量的转化与变现:以开源AI智能名片2+1链动模式S2B2C商城小程序为例
摘要 电商运营的核心目标在于高效地将产品推向市场,实现私域流量的转化和变现。本文以“罗辑思维”的电商实践为背景,探讨了私域流量变现的重要性,并深入分析了开源AI智能名片21链动模式S2B2C商城小程序在电商运营中的应用与价值。通过该模式…...
Python常见面试题的详解19
1. 如何使用Django 中间件 Django 中间件宛如一个灵活且强大的插件系统,它为开发者提供了在请求处理流程的不同关键节点插入自定义代码的能力。这些节点包括请求抵达视图之前、视图完成处理之后以及响应即将返回给客户端之前。借助中间件,我们可以实现诸…...
Python 数据类型转换
目录 整数(int)与浮点数(float)之间的转换 (1)int():将浮点数或字符串转换为整数 (2)float():将整数或字符串转换为浮点数 字符串(str…...
进程概念、PCB及进程查看
文章目录 一.进程的概念进程控制块(PCB) 二.进程查看通过指令查看进程通过proc目录查看进程的cwd和exe获取进程pid和ppid通过fork()创建子进程 一.进程的概念 进程是一个运行起来的程序,而程序是存放在磁盘的,cpu要想执行程序的指…...
PyEcharts 数据可视化:从入门到实战
一、PyEcharts 简介 PyEcharts 是基于百度开源可视化库 ECharts 的 Python 数据可视化工具,支持生成交互式的 HTML 格式图表。相较于 Matplotlib 等静态图表库,PyEcharts 具有以下优势: 丰富的图表类型(30)动态交互功…...
RT-Thread+STM32L475VET6——ADC采集电压
文章目录 前言一、板载资源二、具体步骤1.打开CubeMX进行配置1.1 使用外部高速时钟,并修改时钟树1.2 打开ADC1的通道3,并配置为连续采集模式(ADC根据自己需求调整)1.3 打开串口1.4 生成工程 2. 配置ADC2.1 打开ADC驱动2.2 声明ADC2.3 剪切stm…...
easyexcel 2.2.6版本导出excel模板时,标题带下拉框及其下拉值过多不显示问题
需求背景:有一个需求要做下拉框的值有100多条,同时这个excel是一个多sheet的导入模板 直接用easyexcel 导出,会出现下拉框的值过多,导致生成出来的excel模板无法正常展示下拉功能 使用的easyexcel版本:<depende…...
树(数据结构·)
树(数据结构篇) 里面没有结点时,称之为空树 树型结构是一对多的形式 深度优先遍历: 所谓的DFS,也就是说每次都尝试向更深的节点走,也就是一条路走到黑 当一条路走完,走到…...
XUnity.AutoTranslator-deepseek——调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译
XUnity.AutoTranslator-deepseek 本项目通过调用腾讯的DeepSeek V3 API,实现Unity游戏中日文文本的自动翻译。 准备工作 1. 获取API密钥 访问腾讯云API控制台申请DeepSeek的API密钥(限时免费)。也可以使用其他平台提供的DeepSeek API。 …...
谈谈 ES 6.8 到 7.10 的功能变迁(1)- 性能优化篇
前言 ES 7.10 可能是现在比较常见的 ES 版本。但是对于一些相迭代比较慢的早期业务系统来说,ES 6.8 是一个名副其实的“钉子户”。 借着工作内升级调研的任务东风,我整理从 ES 6.8 到 ES 7.10 ELastic 重点列出的新增功能和优化内容。将分为 6 个篇幅给…...
[250222] Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 | SQLPage v0.33 发布
目录 Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡SQLPage v0.33 发布:使用 SQL 构建自定义 UI 和 API! Kimi Latest 模型发布:尝鲜最新特性与追求稳定性的平衡 Kimi 开放平台推出全新模型 kimi-latest,旨在…...
深入理解设计模式之解释器模式
深入理解设计模式之解释器模式 在软件开发的复杂世界中,我们常常会遇到需要处理特定领域语言的情况。比如在开发一个计算器程序时,需要解析和计算数学表达式;在实现正则表达式功能时,要解析用户输入的正则表达式来匹配文本。这些场景都涉及到对特定语言的解释和执行,而解…...
深入理解设计模式之代理模式
深入理解设计模式之代理模式 在软件开发的复杂体系中,我们常常会遇到这样的情况:需要控制对某个对象的访问,或者在访问对象前后添加一些额外的处理逻辑,又或者希望在不改变原对象代码的基础上扩展其功能。代理模式(Pr…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
Auto-Coder使用GPT-4o完成:在用TabPFN这个模型构建一个预测未来3天涨跌的分类任务
通过akshare库,获取股票数据,并生成TabPFN这个模型 可以识别、处理的格式,写一个完整的预处理示例,并构建一个预测未来 3 天股价涨跌的分类任务 用TabPFN这个模型构建一个预测未来 3 天股价涨跌的分类任务,进行预测并输…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
tree 树组件大数据卡顿问题优化
问题背景 项目中有用到树组件用来做文件目录,但是由于这个树组件的节点越来越多,导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多,导致的浏览器卡顿,这里很明显就需要用到虚拟列表的技术&…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
ABAP设计模式之---“简单设计原则(Simple Design)”
“Simple Design”(简单设计)是软件开发中的一个重要理念,倡导以最简单的方式实现软件功能,以确保代码清晰易懂、易维护,并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计,遵循“让事情保…...
深度学习习题2
1.如果增加神经网络的宽度,精确度会增加到一个特定阈值后,便开始降低。造成这一现象的可能原因是什么? A、即使增加卷积核的数量,只有少部分的核会被用作预测 B、当卷积核数量增加时,神经网络的预测能力会降低 C、当卷…...
CSS设置元素的宽度根据其内容自动调整
width: fit-content 是 CSS 中的一个属性值,用于设置元素的宽度根据其内容自动调整,确保宽度刚好容纳内容而不会超出。 效果对比 默认情况(width: auto): 块级元素(如 <div>)会占满父容器…...
Golang——6、指针和结构体
指针和结构体 1、指针1.1、指针地址和指针类型1.2、指针取值1.3、new和make 2、结构体2.1、type关键字的使用2.2、结构体的定义和初始化2.3、结构体方法和接收者2.4、给任意类型添加方法2.5、结构体的匿名字段2.6、嵌套结构体2.7、嵌套匿名结构体2.8、结构体的继承 3、结构体与…...
