说明
有时候,我们用Git的时候有可能commit提交代码后,发现这一次commit的内容是有错误的,那么有两种处理方法:
- 修改错误内容,再次commit一次
- 使用
git reset
命令撤销这一次错误的commit
第一种方法简单,但会多次一次commit记录。
第二种方法更好,错误的commit没必要保留下来
那么今天来说一下git reset。它的一句话概括
语法
git reset [--soft | --mixed | --hard] [HEAD]
soft、mixed、hard 参数说明:
工作目录 | 暂存区(index) | 版本库(head) | |
---|---|---|---|
--soft |
不变 | 不变 | 恢复指定版本 |
--mixed 或不写 |
不变 | 恢复指定版本 | 恢复指定版本 |
--hard |
恢复指定版本 | 恢复指定版本 | 恢复指定版本 |
注意: --hard
慎用,工作区的代码也会恢复
HEAD 参数说明
HEAD 表示当前版本
# 恢复上一个版本
git reset HEAD^
# 恢复上上一个版本
git reset HEAD^^
# 以此类推...
例子 恢复到上一个版本
windows执行下面命令:
git reset --hard "HEAD^"
linux执行下面命令:
git reset --hard HEAD^
恢复到指定版本
语法
git reset [--soft | --mixed | --hard] 版本序列号
解释: 版本序列号
是 git log
指令的结果,版本号比较长,可以只输入前几位
例子
查看日志
git log
执行结果如下:
恢复命令
git reset --hard 7e310a4
参考
https://www.jianshu.com/p/c2ec5f06cf1a
https://www.cnblogs.com/igoodful/p/10685680.html
https://www.runoob.com/git/git-reset.html