reset 命令会以特定的顺序重写HEAD,INDEX,和工作目录这三棵树。
reset
git reset HEAD <file>
–head参数
git reset --hard HEAD
-hard 是使用reset命令唯一危险的方法。reset不加参数只会修改暂存区的内容。但是一加–hard就可能覆盖工作区的内容。
制定版本来设置index中的版本
git reset eb43bf file.txt
git中文件可能有三个区域,第一工作目录,第二暂存区域,第三是git仓库。对一个文件来货,可以同时在三个区域内存在。而我们常常说的HEAD其实是git仓库当前所指向的状态(不一定是最后一次提交的状态)。
而 reset 之后,head指向之前的某个版本,此时git log看不到最新的版本,如何恢复? 用git log –all可以查看所有的log,然后就可以再次reset 到最新的版本。