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

详情参考
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

你可能感兴趣的:(Git,git)