git reset命令详细介绍
git reset 基本用法
git reset 命令用于回退版本,可以指定退回某一次提交的版本。git reset 命令语法格式如下:
git reset [--soft | --mixed | --hard] [HEAD]
$ git reset HEAD^ # 回退所有内容到上一个版本
$ git reset HEAD^ main.java # 回退 main.java 文件的版本到上一个版本
$ git reset 052e # 回退到指定版本
--soft:回退但保留工作区内容,保留暂存区数据
--mixed:回退但保留工作区内容
--hard:回退所有记录
git reset 参数说明
3.1、reset --hard:最危险的操作,容易造成丢失。
reset --hard 会在重置版本的同时,重置暂存区和工作目录里的内容。也就说,就是在暂存区中你没有commit的修改会被全部擦掉,在工作区中你没有add的修改也被全部擦掉。
3.2、reset --soft:保留工作目录,并把重置 HEAD 所带来的新的差异放进暂存区
reset --soft 会在重置版本库的时候,保留工作目录和暂存区中的内容,并把重置版本库所带来的新的差异放进暂存区。也就说是说,工作目录的内容不受影响,而暂存区中已经commit的内容变成已add的状态。
3.3、reset 不加参数(mixed):保留工作目录,并清空暂存区中未提交的修改。
reset 如果不加参数,那么默认使用 --mixed 参数。它的执行结果是:保留工作目录,并且清空暂存区中未提交的修改。也就是说,工作目录的修改、暂存区的未提交的内容以及由 reset 所导致的新的文件差异,都会被放进工作目录。简而言之,就是把所有差异都混合(mixed)放在工作目录中。