付费课程, 订阅后即可观看

如何把错误删除或修改的文件恢复过来

在平时的工作中,我们做的最多的事情就是犯错误,各种逻辑错误和低级错误,误删除和误修改经常发生,这时候我们就需要把它恢复成原来的状态,这个时候我们只想恢复部分指定的文件而不是全部的文件,我们就可以借助 git checkout 来实现。

猪瓜哥哥 2020.07.25 16:21

大哥,git commit -m "xxx"才算是一次提交,《如何把错误删除或修改的文件恢复过来》的视频中第1分20秒左右只是删除了,并没有执行git comm -m "xxx"命令啊,怎么就用git checkout HEAD -- 文件名 恢复了啊!这条命令不是指恢复最近一次提交吗?

国营 2020.07.25 22:13

咱们说的是不同情况下的恢复,一种是提交后的恢复,也就是你说的这种,这里说得是还没有提交情况下的恢复。是不是我视频中翻车说了提交俩字???

猪瓜哥哥 2020.07.26 04:27

git checkout HEAD -- 文件名 是指恢复最后一次git操作的数据,不管是git rm还是git commit,都算是一次操作;

如果git rm后再git commit,就算是两次操作了,想恢复就得用git checkout HEAD^ -- 文件名

问题的核心就是HEAD是指最后一次操作而非最后一次提交,因为一次完整的提交有可能是先删除再提交到本地仓库

这样理解应该没毛病吧?

国营 2020.07.26 05:27

有毛病,有很大毛病,git rm确实是一项操作,但是它只是对工作区进行了操作,对HEAD的指向没有任何影响,也没有生成或改变任何仓库中的版本。

猪瓜哥哥 2020.07.26 06:07

刚看了 git reset 的背后原理,仿佛明白了些许,我再理解理解,多谢!!!

国营 2020.07.26 06:10

不客气,你离明白它已经不远了

微信扫码登录