git reset 三种使用方法(--hard \soft\mixed)

Git reset命令用于移动HEAD指针并更新工作区和/或缓存区。其核心在于如何处理工作区与缓存区的变更。--hard参数会清除工作区和缓存区的所有修改,适合放弃所有未提交的更改;--soft参数则保留工作区,将差异放入缓存区,适用于合并多个commit;--mixed(默认)保留工作区,清空缓存区,常用于修正错误的commit。通过实例展示了不同参数下如何操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

详情参考
https://www.jianshu.com/p/c2ec5f06cf1a

一、本质

git reset的本质是:移动HEAD以及它所指向的branch

二、参数

三种不同的参数(–hard \soft\mixed):影响的是工作区缓存区清空与保留
–hard:

参数功能场景
–hard清空工作区与缓存区放弃目标版本后所有的修改
–soft保留工作区与缓存区,但是把版本之间的差异存放在缓存区合并多个commit
–mixed(或缺省)保留工作区清空缓存区,把版本之间的差异存放在工作区1、有错误的commit需要修改;2、git reset HEAD清空缓存区

三、使用样例

$ git reset --hard HEAD	#恢复当前版本,删除工作区和缓存区的修改
$ git reset --soft HEAD^	#恢复上一个版本,保留工作区,缓存区准备再次提交commit
$ git reset --mixed HEAD	#恢复当前版本,保留工作区,清空缓存区
$ git reset --hard 1094a	#切换到特定版本号,并删除工作区和缓存区的修改

#场景1:修改仅存在工作区
$ git checkout -- readme.txt # 单文件
#场景2:修改存在暂存区、工作区
$ git reset HEAD readme.txt
$ git checkout -- readme.txt
#场景3:修改存在版本库、暂存区、工作区
$ git reset --hard 1094a
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后厂村路蔡徐坤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值