当前位置: 首页 > news >正文

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录

5.版本回退

5.1选项hard&后悔药

5.2后悔药&commit id

5.3版本回退的原理

6.撤销修改

6.1情况一

6.2情况二

6.3情况三

​7.删除文件


Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为例。

  • 版本回退 是回到某一次提交或者回退操作的时候版本 (用提交记录的commit id即可)
  • 版本撤销 是直接定位某个文件需要撤销的内容。

5.版本回退

版本回退命令:git reset

版本回退命令本质是:将版本库里面的内容回退的。

git reset也存在多个选项。

git reset 命令语法格式为:

git reset [--soft | --mixed | --hard] [HEAD]  你想要回退到的版本的commit id(提交记录)

  • Git reset 只是回退版本库(本地仓库)中的内容。关于工作区和暂存区的内容回退,需要git reset --选项 后面的选项来决定。
  • 版本回退是回退一次 add或者commit 操作,不是一个仅仅某个文件的版本。(这次提交的所有文件的版本都不算)
  • --soft:只回退版本库中的内容
  • --mixed:会回退版本库和暂存区的内容(默认选项)

  • --hard:会回退版本库和暂存区和工作区的内容。(注意❗hard要慎用,一旦使用hard选项,版本库/暂存区/工作区所有的内容都回退到上一个版本。如果文件少,代码少,可以用commit id找回来;如果文件过大,操作频繁,很可能导致丢失一些新开放的代码

  • git log --pretty=oneline 或者 git log 用来查看 每次提交的记录

  • git reset 除了以上的版本回退的操作,还可以将文件回退到当前版本HEAD

  • HEAD当前版本意思就是工作区和暂存区的内容版本和版本库中一致。(看选项)


背景☞回退操作

ReadMe文件原本只有hello linux

ReadMe文件修改之后增加了一行aaaaaaaaaa

git reset [--soft | --mixed | --hard] [HEAD]
git reset --soft //仅工作区的内容
git reset --mixed //是工作区和暂存区的内容——默认选项
git reset --hard //是工作区和暂存区和版本库的内容——慎用
git reset HRAD //(HEAD就是表示回退到当前版本,不需要选项,因为选项是默认选项)//就是工作区和暂存区的内容一起回到版本库内容一致
git reset HRAD^  //回退到上一个版本
git reset HRAD^^  //回退到上上个版本
//后面都要接commit id或者文件名

5.1选项hard&后悔药

git reset --hard 7f0ea7a49fc354e7f07696609b0c9e8ec261d0b8

用户此刻后悔了,能不能撤销刚刚的操作。

当然可以,刚刚已经答应了最新的commit id,我们知道我们原来版本(回退之前)的commit id,所以还可以回退到原来的文件版本。因为我们可以找到commit id,且并没有将modify的ReadMe的commit id清除掉.

5.2后悔药&commit id

 git reflog :用来记录每一次的提交命令

每一次提交或者是回退操作都有各自操作对应commit id

我们照样也可以使用一部分的commit id来回退

以上的前提是我们能找到commit id,在开发的过程中,我们会进行很多次的git操作,会把commit id冲刷掉,找不到。

5.3版本回退的原理

版本回退的速度是非常快的,版本回退的速度为什么快呢❓

只需要修改的master的指向(指针)

6.撤销修改

git checkout  -- 需要撤销的文件名

  • 将工作区的文件回到醉经一次的add或者commit时的一个状态
  • 注意:必须加上-- 这两根横线,不然就是另外一层含义

背景☞撤销操作

版本12:hello linux aaaaaaaaaaaa

版本3:xxxxx code(需要撤销这行代码)

6.1情况一

情况一:只在工作区的ReadMe文件修改了内容

解决办法:

  • 手动撤销——不推荐,容易出错    
  • git checkout --[filename] --推荐

6.2情况二

情况二:在工作区的ReadMe文件修改了内容并且add到了暂存区。

解决办法:

  • 回退命令 git reset HEAD (默认选项--mixed)暂存区回退到当前版本,回到撤销情况一   
  • 使用git checkout 撤销命令。或者是直接git reset --hard HEAD 一步到位

6.3情况三

情况三:在工作区的ReadMe文件修改了内容并且add到了暂存区和commit提交到了版本库中。

  • 前提时:commit 之后没有push
  • 撤销的目的是 不影响远程仓库的代码
  • 解释:我们使用操作只能截止到commit操作,而不能使用Push操作。有个这个大的前提,我们的撤销才算有效。含义:将来在公司运行一些代码,是运行的/跑的 远程仓库的代码。(所以我们主要是围绕远程仓库来玩)撤销主要就是撤销我们本地一些错误的,不好的代码。修改完才能推送到远程仓库。
  • 远程仓库:暂时不用理解。
  • 工作区——add——>暂存区——>commit——>版本库——>Push——>远程仓库
  • 因为上面两种撤销情况我们都不需要考虑,都没有commit到版本库中,不可能到远程仓库。这种情况,版本库中有了,我们不知道,远程仓库里是否被Push了。所以前提条件就是,远程仓库没有被Push,这个撤销操作才算有效。

解决办法:

  • 前提条件:commit 之后没有push    
  • 使用git reset --hard commit id
  • 一步一步回到撤销情况二 撤销情况一 再用git checkout

7.删除文件

删除一个已经更新到版本库中的文件(两种做法) 

//做法1
rm file
git add file
git commit -m "delete file"//做法2
git rm file //把工作区和暂存区的文件一步到位删除
git commit -m "delete file"

相关文章:

【Git的基本操作】版本回退 | 撤销修改的三种情况 | 删除文件

目录 5.版本回退 5.1选项hard&后悔药 5.2后悔药&commit id 5.3版本回退的原理 6.撤销修改 6.1情况一 6.2情况二 6.3情况三 ​7.删除文件 Git重要能力之一马,版本回退功能。Git是版本控制系统,能够管理文件历史版本。本篇以ReadMe文件为…...

STM32-I2C

本内容基于江协科技STM32视频学习之后整理而得。 文章目录 1. I2C通信1.1 I2C通信简介1.2 硬件电路1.3 I2C时序基本单元1.3.1 起始条件和终止条件1.3.2 发送一个字节1.3.3 接收一个字节1.3.4 发送应答和接收应答 1.4 I2C时序1.4.1 指定地址写1.4.2 当前地址读1.4.3 指定地址读…...

04.ffmpeg打印音视频媒体信息

目录 1、相关头文件 2、相关结构体 3、相关函数 4、函数详解 5、源码附上 1、相关头文件 #include <libavformat/avformat.h> 包含格式相关的函数和数据结构 #include <libavutil/avutil.h> 包含一些通用实用函数 2、相关结构体 AV…...

微信开发授权登录梳理总结

授权登录流程对比 微信公众号/网页 微信文档地址&#xff1a;https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html 流程图如下&#xff1a; 特殊说明&#xff1a; 步骤1拼接的微信地址是&#xff1a;https://open.weixin.qq…...

HTML5实现我的音乐网站源码

文章目录 作者&#xff1a;[xcLeigh](https://blog.csdn.net/weixin_43151418) 1.设计来源1.1 界面效果1.2 轮播图界面1.3 音乐播放界面1.4 视频播放界面 2.效果和源码2.1 动态效果2.2 源代码 源码下载万套模板&#xff0c;程序开发&#xff0c;在线开发&#xff0c;在线沟通 作…...

UNI_App平台调试指南 debug(十五)

App平台调试指南 debug 常规开发里,在 HBuilderX 的运行菜单里运行 App,手机端的错误或 console.log 日志信息会直接打印到控制台。 如果需要更多功能,比如审查元素、打断点 debug,则需要启动调试模式。自 HBuilderX 2.0.3+ 版本起开始支持 App 端的调试。 #打开调试窗口…...

LLM之RAG实战(四十一)| 使用LLamaIndex和Gemini构建高级搜索引擎

Retriever 是 RAG&#xff08;Retrieval Augmented Generation&#xff09;管道中最重要的部分。在本文中&#xff0c;我们将使用 LlamaIndex 实现一个结合关键字和向量搜索检索器的自定义检索器&#xff0c;并且使用 Gemini大模型来进行多个文档聊天。 通过本文&#xff0c;我…...

【错题集-编程题】AOE还是单体?(贪心)

牛客对应链接&#xff1a;AOE还是单体&#xff1f; (nowcoder.com) 一、分析题目 如果使用一次 AOE 造成的伤害比消耗的蓝量多&#xff0c;那就使用。否则就一直使用单体伤害。 二、代码 //值得学习的代码 #include <iostream> #include <algorithm>using namespa…...

怎么办?我的C盘又爆红了!别慌!博主手把手带你管理你的C盘空间~

怎么办&#xff1f;我的C盘又爆红了&#xff01;别慌&#xff01;博主手把手带你管理你的C盘空间~ 文章目录 怎么办&#xff1f;我的C盘又爆红了&#xff01;别慌&#xff01;博主手把手带你管理你的C盘空间~0. 在开始清理之前1. 推荐执行的操作1.1 清理系统缓存文件1.2 磁盘清…...

react启用mobx @decorators装饰器语法

react如果没有经过配置&#xff0c;直接使用decorators装饰器语法会报错&#xff1a; Support for the experimental syntax ‘decorators’ isn’t currently enabled 因为react默认是不支持装饰器语法&#xff0c;需要做一些配置来启用装饰器语法。 step1: 在 tsconfig.js…...

计算机如何学习

1. 不要只盯着计算机语言学习&#xff0c;你现在已经学习了C语言和Java&#xff0c;暑假又规划学习Python&#xff0c;最后你掌握的就是计算机语言包而已。 2. 建议你找一门想要深挖的语言&#xff0c;沿着这个方向继续往后学习知识就行。计算机语言是学不完的&#xff0c;而未…...

【Python 基础】函数 - 1

函数 从前面的章节中,你已经熟悉了 print()、input()和 len()函数。Python 提供了这样一些内建函数,但你也可以编写自己的函数。“函数”就像一个程序内的小程序。 为了更好地理解函数的工作原理,让我们来创建一个 函 数 。 在 文 件 编 辑器 中 输 入 下 面 的 程 序 , …...

从0到1开发一个Vue3的新手引导组件(附带遇到的问题以及解决方式)

1. 前言: 新手引导组件,顾名思义,就是强制性的要求第一次使用的用户跟随引导使用应用,可以让一些第一次使用系统的新手快速上手,正好我最近也遇到了这个需求,于是就想着开发一个通用组件拿出来使用(写完之后才发现element就有,后悔了哈哈哈&#x1f62d;&#x1f62d;) 示例图…...

概率统计(二)

二维离散型 联合分布律 样本总数为16是因为&#xff0c;两封信分别可以放在4个信箱 边缘分布律 条件分布律 独立性 选填才能用秒杀 联合概率乘积不等于边缘概率的乘积则不独立 二维连续型 区间用一重积分面积用二重积分 离散型随机变量 常见6个分布的期望和方差 离散型随机变…...

文件类:如何将excel文件转为csv文件(且保留时间格式)?

最近有个场景&#xff0c;在ftp服务器上&#xff0c;读取csv文件并入库&#xff0c;但是客户提供的一部分文件却是xls文件&#xff0c;就得搞个将excel转为csv文件的方法&#xff0c;话不多说直接开干。 方法 public static void convertExcelToCSV(String excelFilePath, Str…...

FiddlerScript Rules修改-更改发包中的cookie

直接在fiddler script editor中增加如下处理代码即可 推荐文档oSession -- 参数说明 测试笔记 看云...

直升机停机坪的H代表什么

可为什么直升机的停机坪为什么要用“H”来表示呢&#xff1f; Helicopter 直升机停机坪的“H”来自直升机的英文Helicopter的首字母&#xff0c;也是停机坪的识别标志&#xff0c;表示可用于直升机的垂直起降&#xff0c;方便于直升机飞行员在空中能快速识别降落位置。 另外…...

hyperworks软件许可优化解决方案

Hyperworks软件介绍 Altair 仿真驱动设计改变了产品开发&#xff0c;使工程师能够减少设计迭代和原型测试。提升科学计算能力扩大了应用分析的机会&#xff0c;使大型设计研究能够在限定的项目时间完成。现在&#xff0c;人工智能在工程领域的应用再次改变了产品开发。基于物理…...

四川赤橙宏海商务信息咨询有限公司抖音电商服务靠谱吗?

在数字化浪潮席卷全球的今天&#xff0c;电商行业蓬勃发展&#xff0c;各种新兴电商平台层出不穷。其中&#xff0c;抖音电商以其独特的社交属性和庞大的用户基础&#xff0c;迅速崛起为行业新星。四川赤橙宏海商务信息咨询有限公司&#xff0c;作为专注于抖音电商服务的佼佼者…...

鸿蒙开发:Universal Keystore Kit(密钥管理服务)【密钥派生(C/C++)】

密钥派生(C/C) 以HKDF256密钥为例&#xff0c;完成密钥派生。具体的场景介绍及支持的算法规格&#xff0c;请参考[密钥生成支持的算法]。 在CMake脚本中链接相关动态库 target_link_libraries(entry PUBLIC libhuks_ndk.z.so)开发步骤 生成密钥 指定密钥别名。 初始化密钥属…...

【ARMv8/v9 GIC 系列 6 -- 中断优先级详细介绍】

请阅读【ARM GICv3/v4 实战学习 】 文章目录 Interrupt prioritizationInterrupt Priority ValueSGI And PPI Priority SetSecure And Non-secure Priority AccessInterrupt prioritization 在ARM GICv3和GICv4架构中,中断的优先级化(prioritization)是通过以下几种方式来描…...

【CORS 报错】跨域请求问题:CORS 多种环境下的解决方案

&#x1f525; 个人主页&#xff1a;空白诗 文章目录 一、CORS错误的常见原因二、解决方案1. Vue3 Vite项目下的解决方案创建Vue3 Vite项目配置Vite的代理发送请求 2. jQuery项目下的解决方案使用CORS请求头使用JSONP 3. 其他环境下的解决方案使用服务器端代理设置CORS头使用…...

【Scrapy】深入了解 Scrapy 中间件中的 process_spider_output 方法

准我快乐地重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 再去做没流着情泪的伊人 假装再有从前演过的戏份 重饰演某段美丽故事主人 饰演你旧年共寻梦的恋人 你纵是未明白仍夜深一人 穿起你那无言毛衣当跟你接近 &#x1f3b5; 陈慧娴《傻女》 Scrapy 是…...

GigE Vision GVCP/GVSP

GIGE协议&#xff0c;全称Gigabit Ethernet Vision协议&#xff0c;是一种基于千兆以太网&#xff08;Gigabit Ethernet&#xff09;技术开发的相机接口标准&#xff0c;主要用于高速图像采集和处理。该协议通过以太网技术实现图像数据和控制信号的传输&#xff0c;具有低成本、…...

结合C++智能指针聊聊观察者模式

0. 问题 问题是这样&#xff0c;三个类A,B,C。AC都有指针指向同一个B类对象&#xff0c;C类可以回收了刚刚生成的B类对象的内存&#xff0c;A类应该对这个指针进行如何操作&#xff0c;才能确保使用该指针时不会产生野指针问题发生未定义结果&#xff1f; 这是前两天面试的时候…...

【React】监听浏览器返回事件

文章目录 popstate事件&#xff1a;点击浏览器前进&#xff0c;后退会触发popstate事件即&#xff0c;在同一文档的两个历史记录条目之间导航会触发该事件 useEffect(() > {const handlePageBack () > {// 此处写你想要触发的事件console.log(浏览器返回按钮被点击了&a…...

python用selenium网页模拟时无法定位元素解决方法1

进行网页模拟时&#xff0c;有时我们明明可以复制出元素的xpath&#xff0c;但是用selenium的xpath click无法点击到元素。这种情况有几种原因&#xff0c;本文写其中一种——iframe 比如下图网址&#xff0c;第二行出现iframe&#xff0c;则往下的行内元素都会定位不到&#…...

css中文字书写方向

writing-mode 是 CSS 中的一个属性&#xff0c;用于设置文本、内联元素、表格单元格和表格列的书写方向、文本排列以及块流方向。以下是对 writing-mode 属性的详细介绍&#xff1a; 1. 语法和值 语法&#xff1a;writing-mode: horizontal-tb | vertical-rl | vertical-lr |…...

医学王者刊!影响因子自创刊只增不减,3区跃升1区,国人发文占比6成!

【SciencePub学术】今天给大家推荐的是一本医学领域的SCI&#xff0c;是1本颇富潜力的国产期刊。影响因子自创刊以来就逐年上涨&#xff0c;凭借自己的努力从中科院3区跃迁至中科院1区&#xff0c;据说很多人已经靠信息差吃上了这本期刊的红利&#xff0c;接下来给大家解析一下…...

数据建设实践之大数据平台(五)

安装hive 上传安装包到/opt/software目录并解压 [bigdata@node101 software]$ tar -zxvf hive-3.1.3-with-spark-3.3.1.tar.gz -C /opt/services [bigdata@node101 services]$ mv apache-hive-3.1.3-bin apache-hive-3.1.3 配置环境变量 export JAVA_HOME=/opt/services…...