【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…...
SQLite JDBC驱动:Java开发者应对嵌入式数据库挑战的终极方案
SQLite JDBC驱动:Java开发者应对嵌入式数据库挑战的终极方案 【免费下载链接】sqlite-jdbc SQLite JDBC Driver 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-jdbc 想象一下这样的场景:你正在开发一个需要轻量级数据存储的Java应用&#…...
番茄小说下载器:打造您的个人离线图书馆解决方案
番茄小说下载器:打造您的个人离线图书馆解决方案 【免费下载链接】Tomato-Novel-Downloader 番茄小说下载器不精简版 项目地址: https://gitcode.com/gh_mirrors/to/Tomato-Novel-Downloader 在数字化阅读日益普及的今天,网络环境不稳定、平台限制…...
实战指南:如何在CIFAR-100-LT上使用LDAM Loss提升长尾分类效果(附代码)
实战指南:如何在CIFAR-100-LT上使用LDAM Loss提升长尾分类效果(附代码) 当面对CIFAR-100-LT这样的长尾分布数据集时,传统的交叉熵损失往往会偏向头部类别,导致模型在尾部类别上的表现不佳。LDAM Loss(Label…...
Blender 3MF插件终极指南:如何免费实现3D打印文件格式无缝转换
Blender 3MF插件终极指南:如何免费实现3D打印文件格式无缝转换 【免费下载链接】Blender3mfFormat Blender add-on to import/export 3MF files 项目地址: https://gitcode.com/gh_mirrors/bl/Blender3mfFormat Blender3mfFormat是一款功能完整的开源Blender…...
(82页PPT)APQP初级先期产品质量策划和控制计划(附下载方式)
篇幅所限,本文只提供部分资料内容,完整资料请看下面链接 (82页PPT)APQP初级先期产品质量策划和控制计划.pptx_火灾应急处理措施资源-CSDN下载 资料解读:(82 页 PPT)APQP 初级先期产品质量策划和…...
英雄联盟国服皮肤定制终极指南:R3nzSkin技术深度解析与安全实践
英雄联盟国服皮肤定制终极指南:R3nzSkin技术深度解析与安全实践 【免费下载链接】R3nzSkin-For-China-Server Skin changer for League of Legends (LOL) 项目地址: https://gitcode.com/gh_mirrors/r3/R3nzSkin-For-China-Server R3nzSkin国服特供版是专为中…...
终极指南:如何用EverythingToolbar实现Windows文件搜索效率翻倍 [特殊字符]
终极指南:如何用EverythingToolbar实现Windows文件搜索效率翻倍 🚀 【免费下载链接】EverythingToolbar Everything integration for the Windows taskbar. 项目地址: https://gitcode.com/gh_mirrors/eve/EverythingToolbar 你是否厌倦了在Windo…...
3步完成Windows平台ADB和Fastboot驱动一键安装完整指南
3步完成Windows平台ADB和Fastboot驱动一键安装完整指南 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/la/Latest-adb-f…...
BiliDownloader:5分钟掌握B站视频下载的终极解决方案
BiliDownloader:5分钟掌握B站视频下载的终极解决方案 【免费下载链接】BiliDownloader BiliDownloader是一款界面精简,操作简单且高速下载的b站下载器 项目地址: https://gitcode.com/gh_mirrors/bi/BiliDownloader BiliDownloader是一款专为B站视…...
3分钟搞定Windows安卓驱动:最新ADB/Fastboot一键安装全攻略
3分钟搞定Windows安卓驱动:最新ADB/Fastboot一键安装全攻略 【免费下载链接】Latest-adb-fastboot-installer-for-windows A Simple Android Driver installer tool for windows (Always installs the latest version) 项目地址: https://gitcode.com/gh_mirrors/…...
