-
git restore --source
某次提交的commitdi -W 要写的文件名这样直接覆盖工作区的文件了
-
git cat-file commitid:文件的相对路径 > 新的文件名
git cat 可以读取任意某次提交的文件内容,通过重定向到一个新文件,这样不影响现在工作区的修改,就曲线救国
![](http://ww1.sinaimg.cn/large/006vQ8sXly1gjmmqvi0hej30v00dndhe.jpg)
git reset 与 git checkout
reset hard
同时重置仓库 index 工作区
reset mix
同时重置仓库 index
reset soft
重置仓库
checkout --
这种用index重置工作区
结论
只重置工作区,而且不是用index,是用仓库的提交,只能restore
但是这种操作都可能导致未提交的工作区修改丢失,因为没提交,所以不可逆
git cat 可以读取任意某次提交的文件内容,通过重定向到一个新文件,这样不影响现在工作区的修改,就曲线救国