行业资讯 2025年08月6日
0 收藏 0 点赞 477 浏览 1864 个字
摘要 :

文章目录 git reset指令三种用法区别与说明 实例演示 第1步:查看commit id 第2步:创建一个类并commit,但不push 第4步:再新建一个类,并将该类commit 第5步:撤回到……




  • git reset指令三种用法区别与说明
  • 实例演示
    • 第1步:查看commit id
    • 第2步:创建一个类并commit,但不push
    • 第4步:再新建一个类,并将该类commit
    • 第5步:撤回到暂存区
    • 第6步:再新建一个类,并将该类push
    • 第7步:测试hard撤回
  • 补充
  • 思考

在使用git进行版本控制与管理的过程中,我们经常会发现有时候由于粗心导致代码提交出错,不应该commit的代码commit到了对应的分支,我们该如何撤回这部分误提交的代码呢?答案是可以通过git reset指令来实现代码回滚,至于具体的用法,下面潘老师来以一个案例来演示给大家看下。
在使用前,建议大家先了解下git的3个本地工作区+1个远程库之间的关系,可以看这篇文章:Git本地3个工作区域详解及如何回滚,还搞不懂git建议看看

git reset指令三种用法区别与说明

git reset 三种模式分别为 : mixed(默认)、softhard
1、git reset --soft:代表将某个commit id之后的变更内容全部放到暂存区中。

2、git reset --mixed:将某个commit id之后的变更内容全部放到工作区中。默认方式,不写--mixed就是默认这一种。

3、git reset --hard:将某个commit id之后的变更内容全部丢弃。

所谓commit id,是指每次提交生成的一个id,通过git log指令可以查看。

实例演示

第1步:查看commit id

我们先看下当前commit id的值为2c2a0278e849b4ab7f2962b5e9c56390ef16d37c
Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!
此时,远程仓库和本地仓库一样,都只有一个DemoApplication类。
Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!

第2步:创建一个类并commit,但不push

这里我新建了一个名为GitCommit的类,并进行了commit操作,但未push到远程,此时该类在我的本地库,现在可以进行撤回测试。
1、撤回到工作区:

git reset --mixed 2c2a0278e849b4ab7f2962b5e9c56390ef16d37c

Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!
通过上面操作发现,GitCommit类已经回到了工作区,因为GitCommit类是在该commit id之后提交的,所以直接撤回到到工作区。

第4步:再新建一个类,并将该类commit

我们再新建一个一个GitCommit2类,并将其commit
Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!

第5步:撤回到暂存区

git reset --soft 2c2a0278e849b4ab7f2962b5e9c56390ef16d37c

Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!

第6步:再新建一个类,并将该类push

我们再新建一个GitCommit3类,并将其push,然后将GitCommit类进行commit但不push,将GitCommit2保持add状态即可
Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!

第7步:测试hard撤回

git reset --hard 2c2a0278e849b4ab7f2962b5e9c56390ef16d37c

Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!
我们发现在该commit id 之后的所有的代码(我们这里是3个类)全部没了,恢复到了最开始的状态。
但是,我们发现,远程库中已push的GitCommit3类还是存在的。也就是说hard虽然会回退已提交的,并清除本地文件,但不会影响已push到远程仓库的。

甚至我们还可以通过git pull把GitCommit3文件再拉取下来,也就是说先git resset –hard,然后再拉取下,可以删除本地仓库、暂存区、工作区等未提交到远程的所有文件,然后把已提交的文件还原。这里拉取就不再演示了
Git如何实现代码撤回操作?可通过reset指令回滚误提交代码!

补充

快捷使用,可以回退到上个版本,上上个版本等,指定commit id也可以只写前几位即可。下面以git reset --hard为例

//退回到相对于当前版本的上一个版本 HEAD 表示当前版本
git reset --hard HEAD^
//退回到相对于当前版本的上上一个版本  HEAD 代表当前版本
git reset --hard HEAD^^
//退回到相对于当前版本的上 100 个版本去  HEAD 表示当前版本
git reset --hard HEAD~100
//退回到指定的版本   这里不需要全部写commit id  Git 回去自动适配
git reset --hard 3628164

思考

那么该如何撤销已push的代码呢?看下面这篇文章吧。

Git push错分支该如何回滚远程分支代码

文章目录 前置说明 操作步骤 第1步:查看git提交日志 第2步:将旧分支代码撤回暂存区 第3步:切换新分支 […]

以上就是关于Git如何实现代码撤回操作的全部详解,关于通过reset指令回滚误提交代码的操作你学会了吗?

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.zuozi.net/8643.html

管理员

相关推荐
2025-08-06

文章目录 一、Reader 接口概述 1.1 什么是 Reader 接口? 1.2 Reader 与 InputStream 的区别 1.3 …

988
2025-08-06

文章目录 一、事件溯源 (一)核心概念 (二)Kafka与Golang的优势 (三)完整代码实现 二、命令…

465
2025-08-06

文章目录 一、证明GC期间执行native函数的线程仍在运行 二、native线程操作Java对象的影响及处理方…

348
2025-08-06

文章目录 一、事务基础概念 二、MyBatis事务管理机制 (一)JDBC原生事务管理(JdbcTransaction)…

456
2025-08-06

文章目录 一、SnowFlake算法核心原理 二、SnowFlake算法工作流程详解 三、SnowFlake算法的Java代码…

517
2025-08-06

文章目录 一、本地Jar包的加载操作 二、本地Class的加载方法 三、远程Jar包的加载方式 你知道Groo…

832
发表评论
暂无评论

还没有评论呢,快来抢沙发~

助力内容变现

将您的收入提升到一个新的水平

点击联系客服

在线时间:08:00-23:00

客服QQ

122325244

客服电话

400-888-8888

客服邮箱

122325244@qq.com

扫描二维码

关注微信客服号