【Git版本控制器】第三弹——版本回退,撤销修改,删除文件

 🎁个人主页:我们的五年

🔍系列专栏:Linux网络编程

🌷追光的人,终会万丈光芒

🎉欢迎大家点赞👍评论📝收藏⭐文章

相关笔记:
https://blog.csdn.net/djdjiejsn/category_12893502.html

第一篇:https://where.blog.csdn.net/article/details/145606565?spm=1001.2014.3001.5502

第2篇:https://where.blog.csdn.net/article/details/145610968?spm=1001.2014.3001.5502

前言:

这篇讲的主要就是版本回退,回退到之前的版本。

目录

1.版本回退:

1.1背景

1.2git reset命令

选项

[HEAD]

1.3注意事项:

2.为什么版本库退回很快?

2.1原因:

2.2commit id用单向链表进行管理

3.撤销修改

3.1只在工作区进行了修改,还没有add操作

3.2在工作区修改,并且进行add操作,没有进行commit操作

方法一:

 方法二:

3.3进行了commit操作,但是没有进行push到远程仓库

4.删除文件


1.版本回退:

1.1背景

当我们想回退到某个特定的版本的时候,我们就可以进行版本回退。

回退指的是版本库里面的版本。缓存区,工作区里面的内容由命令决定。

1.2git reset命令

命令基本格式:

git reset [--soft | --mixed | --hard] [HEAD]

git reset [--soft | --mixed | --hard] [HEAD]

选项

--soft重置版本库保留工作区缓存区更改
--mixed(不带参数时的默认选项)重置版本库缓存区保留工作区更改
--hard慎用重置版本库缓存区工作区全部被重置

这三个选项三选一,如果不带参数,默认就是--mixed。

[HEAD]

🥮1.写法一:

可直接写成 commit id,表示指定退回的版本。

🥮2.写法2:

HEAD 表⽰当前版本
HEAD^ 上⼀个版本
HEAD^^ 上上⼀个版本

🥮2.写法3:

HEAD~0 表⽰当前版本
HEAD~1 上⼀个版本
HEAD~2 上上⼀个版本

 为什么--hard选项要慎用?

因为如果我们在工作区进行了编写代码,如果直接用--hard,那么工作区没有进入版本库里面的代码就消失了,再也找不到了。

1.3注意事项:

我们可以用git log查看commit id,然后根据commit id就可以回退到指定的版本。然后我们再用,发现log也变化了,之前的commit id不见了。那么如果我们又想退回了。那么我们也不知道那个版本的commit id了呀。

用HRAD^也是回退到当前master分支下的前一个版本。

这时候就要用git reflog 查看每次的回退的信息了。

git reflog

 最前面的这些也可以作为HEAD直接进行版本回退。

输入哪个就回退到哪个版本。


2.为什么版本库退回很快?

2.1原因:

因为版本回退,每一次的更新,修改,都是HEAD指针在变,HEAD指向的是master,master里面放的是最新一次的commit id。

所以回退HEAD指向之前的commit id值。

2.2commit id用单向链表进行管理

我们发现,每次提交,HEAD指向新的commit id,然后每一个commit id文件里面保存着上一个commit id。(parent


3.撤销修改

3.1只在工作区进行了修改,还没有add操作

执行下面命令,记住--是两个杠,不能写错,写错就是另外的意思了。

git checkout -- [file]

 这个场景就适用于,我们之前已经之前的代码都已经add,commit操作了。然后我们再在工作区进行开发,后面我们想撤销到最新一次的commit的内容。就使用上面的命令。

3.2在工作区修改,并且进行add操作,没有进行commit操作

方法一:

直接进行hard操作,回退到当前版本库的内容。

git reset --hard HEAD [filename]

 方法二:

进行--mixed操作,再进行git checkout -- 操作

git reset --hard HEAD [filename]
git checkout -- [filename]

3.3进行了commit操作,但是没有进行push到远程仓库

前提条件,没有进行push操作,提交到远程仓库

git reset --hard HEAD^

4.删除文件

对工作区进行删除,新增,修改,都是对工作区进行变动,都可以进行git add,gitcommit 操作。

要删除一个文件,我们可以现在工作区进行删除,然后再进行add,commit操作,就把版本库里面的指定文件也删除了。

还有一个就是git提供的删除文件的操作。

git rm [filename]

git rm [filename]

这个命令会直接把工作区和暂存区的这个文件都删除。

然后再进行commit操作就可以了。


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

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

相关文章

DeepSeek ,银行营销会被 AIGC 颠覆吗?

AI 让银行营销更智能,但更重要的是“懂客户” AI 在银行营销中的应用已经不仅仅局限于文案生成,而是渗透到了整个营销流程。 据悉,中国银行已经开始利用 AI 大模型构建智能营销助手系统,结合知识图谱和 AI 技术,实现…

【产品推介】可驱动5A负载的降压型DC/DC转换器XBL1663

一、产品简介 采用ESOP-8封装的XBL1663最大可输出5A电流 芯伯乐XBL1663是一款专为降压型DC/DC转换器设计的单片集成电路,具有高转换效率、恒定开关频率工作的特点。内置功率 MOSFET可在 4.5 V-40V 输入电源上实现 5A 峰值输出电流,并具有出色的负载和线…

Rust编程语言入门教程(四)猜数游戏:一次猜测

目录 引言猜数游戏——目标一、创建项目二、编写代码三、运行代码四、代码解释总结 引言 猜数游戏是一个经典的编程练习,它不仅能够帮助开发者熟悉基本的输入输出操作,还能深入理解条件判断和用户交互的逻辑。在 Rust 中,通过标准库提供的 s…

.NET版PDF处理控件Aspose.PDF教程:在 C# 中将 TIFF 文件转换为 PDF

将TIFF文件转换为PDF文档在各个行业中都是必不可少的。许多企业需要将文档转换为存档、共享或打印。TIFF 文件通常用于图像,而 PDF 是文档共享的标准。将 TIFF 文件转换为 PDF 可确保跨不同平台的兼容性和易用性。在这篇博文中,我们将探讨如何使用 Aspos…

DeepSeek视角下学术论文创新点探索干货分享!

学术论文的创新性是推动知识进步和科学发展的关键因素。它不仅是学术研究的基本要求,也是研究者专业能力的重要体现。本文将探讨学术论文创新的重要性,并分析DeepSeek在促进学术论文创新方面可能发挥的独特作用。 1.创新为啥这么重要? 1. 探…

EasyRTC智能硬件:实时畅联、沉浸互动、消音护航

在当今智能硬件迅猛发展的时代,音视频通讯技术已成为设备与用户、设备与设备间不可或缺的沟通纽带。而EasyRTC,凭借其无可比拟的实时性能、卓越的互动感受以及强大的交互实力,正逐步演变为智能硬件领域的“超级动力”核心。特别是其倾力打造的…

matlab汽车动力学半车垂向振动模型

1、内容简介 matlab141-半车垂向振动模型 可以交流、咨询、答疑 2、内容说明 略 3、仿真分析 略 4、参考论文 略

重生之我在异世界学编程之C语言:深入预处理篇(上)

大家好,这里是小编的博客频道 小编的博客:就爱学编程 很高兴在CSDN这个大家庭与大家相识,希望能在这里与大家共同进步,共同收获更好的自己!!! 本文目录 引言正文一、预处理的作用与流程&#xf…

观察者模式说明(C语言版本)

观察者模式主要是为了实现一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。下面使用C语言实现了一个具体的应用示例,有需要的可以参考…

Zotero PDF Translate插件配置百度翻译api

Zotero PDF Translate插件可以使用几种翻译api,虽然谷歌最好用,但是由于众所周知的原因,不稳定。而cnki有字数限制,有道有时也不行。其他的翻译需要申请密钥。本文以百度为例,进行申请 官方有申请教程: Zot…

无人机遥感:如何助力智慧农业中的农林信息提取?

目录 综合态势分析农作物形态信息提取理论与实践农作物生理生化信息提取理论与实践农作物胁迫信息提取理论与实践农作物产量信息提取理论与实践遥感提取结果的空间表达——GIS制图流程 前言 无人机遥感技术在农林信息提取中的应用已成为智慧农业和生态监测的重要手段。通过搭载…

【线段树 二分查找】P3939 数颜色|普及+

本文涉及知识点 C线段树 C二分查找 P3939 数颜色 题目背景 大样例可在页面底部「附件」中下载。 题目描述 小 C 的兔子不是雪白的,而是五彩缤纷的。每只兔子都有一种颜色,不同的兔子可能有 相同的颜色。小 C 把她标号从 1 到 n n n 的 n n n 只兔…

网络工程师 (44)ARP协议

前言 ARP协议,即地址解析协议(Address Resolution Protocol),是一种网络协议,主要用于将网络层的IPv4地址(逻辑地址)解析为链路层的物理地址(通常是MAC地址)。 一、基本概…

深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析

修改内容时间2.4.1处理请求的流程,引用更好的流程图2025.02.11首发2025.02.08 深入解析 vLLM:高性能 LLM 服务框架的架构之美(一)原理与解析 深入解析 vLLM:高性能 LLM 服务框架的架构之美(二)…

Web安全|渗透测试|网络安全

基础入门(P1-P5) p1概念名词 1.1域名 什么是域名? 域名:是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。 什么是二级域名多级域名&am…

JavaSE的基础语法(5)

一.Java中的方法 函数:把完成某一特定功能的代码进行抽取,把他们卸写在一组大括号中,为其命名通过函数名调用即可 Java中的方法:类似于其他语言中的函数(在面向对象的语言中习惯称之为方法,且不能独立存在,需要定义在类中) 将完成某个特定功能的某一段代码封装到一个有名称的代…

springcloud集成gateway

本篇文章只介绍gateway模块的搭建步骤,并无gateway详细介绍 gateway详解请查看:SpringCloudGateway官方文档详解 前置处理 父模块中已指定版本 不知道如何选择版本看这篇: 手把手教你梳理springcloud与springboot与springcloudalibaba的版本…

【Linux】VS code编写cpp文件调用CPLEX求解,Makefile撰写方式

1、先给出Makefile # 目标文件 TARGET my_program# 源文件 SRC blend.cpp# 头文件目录(如果有) INCLUDES -I./# CPLEX 路径设置(根据你的 CPLEX 安装路径) CPLEX_INCLUDE -I/mnt/c/users/daniel/Ubuntu/cplex/cplex/include …

DeepSeek24小时写作机器人,持续创作高质量文案

内容创作已成为企业、自媒体和创作者的核心竞争力。面对海量的内容需求,人工创作效率低、成本高、质量参差不齐等问题日益凸显。如何在有限时间内产出高质量内容?DeepSeek写作机器人,一款24小时持续创作的智能工具,为企业和个人提…

开源协议深度解析:理解MIT、GPL、Apache等常见许可证

目录 前言1. MIT协议:自由而宽松的开源许可1.1 MIT协议的主要特点1.2 MIT协议的适用场景 2. GPL协议:自由软件的捍卫者2.1 GPL协议的核心理念2.2 GPL协议的适用场景 3. Apache License 2.0:开源与专利保护的平衡3.1 Apache License 2.0的主要…