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

【Git】撤销修改

如果我们在我们的工作区写了很长时间代码,越写越写不下去,觉得自己写的实在是垃圾,想恢复到上一个版本。

情况一:对于工作区的代码,还没有 add

你当然可以直接删掉你目前在工作区新增的代码,像这样:

向test中新增一行代码
在这里插入图片描述
在这里插入图片描述

幸亏我们工作效率不高,才写了一行代码就可以发现了,要是你写了3天,一直都没有提交,该怎么删掉呢?

你自己都忘了自己新增过哪些,有同学说,我可以git diff xxx 一下,看看差别在哪里删除呢?那你肯定又要花3天时间删代码了,并且很大的概率还会改出bug。一周过去了,你怎么向你的老板交代呢?

Git其实还为我们提供了更好的方式,我们可以使用git checkout -- [file]命令让工作区的文件回到最近一次addcommit时的状态。
要注意git checkout -- [file]命令中的-- 很重要,切记不要省略,一旦省略,该命令就要变为其他意思了,后面我们再说。示例如下:

在这里插入图片描述

情况二:已经add,但没有commit

add后还是保存到了暂存区呢?怎么撤销呢?
在这里插入图片描述
在这里插入图片描述

让我们来回忆一下学过的git reset回退命令,该命令如果使用–mixed参数,可以将暂存区的内容回退为指定的版本内容,但工作区文件保持不变。那我们就可以回退下暂存区的内容了!!!示例如下:

在这里插入图片描述

用git status查看一下,发现现在暂存区是干净的,工作区有修改。
在这里插入图片描述

恢复了!

情况三:已经add,并且也commit了

不要担心,我们可以git reset --hard HEAD^回退到上一个版本!不过,这是有条件的,就是你还没有把自己的本地版本库推送到远程。还记得Git是分布式版本控制系统吗?我们后面会讲到远程版本库,一旦你推送到远程版本库,你就真的惨了……
在这里插入图片描述


http://www.kler.cn/a/580759.html

相关文章:

  • Qt 初识
  • Rat工具:XiebroC2 一款国产C2工具简单使用介绍
  • 02C#基本结构篇(D1_基本语法)
  • 自然语言处理:Transformer、BERT
  • 大白话react第十六章React 与 WebGL 结合的实战项目
  • 天津大学:《深度解读DeepSeek:部署、使用、安全》
  • 【MySQL_04】数据库基本操作(用户管理--配置文件--远程连接--数据库信息查看、创建、删除)
  • TypeScript变量声明详解:与JavaScript的对比与工程化价值
  • 第十五章:go package 包的管理
  • 垂起固定翼+多旋翼+自组网:无人机中低空一体化组网技术详解
  • MySQL和Hive SQL 时间处理常用函数汇总
  • Qt C++ 实际开发中宏编译的运用
  • Unity插件-Mirror使用方法(九)组件介绍(Network Start Position)
  • Manus VR手套深度解析:重新定义人机交互的未来
  • nginx作为web服务应用
  • redis连接服务
  • git worktree的使用
  • Linux基本操作指令3
  • spring ai 调用本地部署的deepseek实现简单的问答功能
  • Linux原生异步IO原理与实现(Native AIO)