付费课程, 订阅后即可观看
如何把错误删除或修改的文件恢复过来
在平时的工作中,我们做的最多的事情就是犯错误,各种逻辑错误和低级错误,误删除和误修改经常发生,这时候我们就需要把它恢复成原来的状态,这个时候我们只想恢复部分指定的文件而不是全部的文件,我们就可以借助 git checkout 来实现。
微信扫码登录
![](https://www.coding10.com/images/auth/default.png)
在平时的工作中,我们做的最多的事情就是犯错误,各种逻辑错误和低级错误,误删除和误修改经常发生,这时候我们就需要把它恢复成原来的状态,这个时候我们只想恢复部分指定的文件而不是全部的文件,我们就可以借助 git checkout 来实现。
大哥,git commit -m "xxx"才算是一次提交,《如何把错误删除或修改的文件恢复过来》的视频中第1分20秒左右只是删除了,并没有执行git comm -m "xxx"命令啊,怎么就用git checkout HEAD -- 文件名 恢复了啊!这条命令不是指恢复最近一次提交吗?
咱们说的是不同情况下的恢复,一种是提交后的恢复,也就是你说的这种,这里说得是还没有提交情况下的恢复。是不是我视频中翻车说了提交俩字???
git checkout HEAD -- 文件名 是指恢复最后一次git操作的数据,不管是git rm还是git commit,都算是一次操作;
如果git rm后再git commit,就算是两次操作了,想恢复就得用git checkout HEAD^ -- 文件名
问题的核心就是HEAD是指最后一次操作而非最后一次提交,因为一次完整的提交有可能是先删除再提交到本地仓库
这样理解应该没毛病吧?
有毛病,有很大毛病,git rm确实是一项操作,但是它只是对工作区进行了操作,对HEAD的指向没有任何影响,也没有生成或改变任何仓库中的版本。
刚看了 git reset 的背后原理,仿佛明白了些许,我再理解理解,多谢!!!
不客气,你离明白它已经不远了