github疑难问题---3、git reset --hard HEAD~2误删操作恢复
github疑难问题---3、git reset --hard HEAD~2误删操作恢复
一、总结
一句话总结:
1、【找到需要恢复的版本id】:git reflog看到被删除的commitid,下一步就可以根据这个commitid恢复到对应的版本
2、【恢复到指定版本】:执行$git reset --hard f15dc99(被reset前的commitid)
1、git命令log与reflog的比较?
【用git reflog则可以看到被删除的commitid】:例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
二、git reset --hard HEAD~2误删操作恢复
系列课程的视频位置:
1、error: src refspec master does not match any.-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/363
2、git中的工作区、暂存区和版本库分别是什么-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/364
3、git reset --hard HEAD~2误删操作恢复-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/365
4、github绑定ssh key-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/366
博客对应课程的视频位置:3、git reset --hard HEAD~2误删操作恢复-范仁义-读书编程笔记
https://www.fanrenyi.com/video/41/365
问题:
执行这个操作之后,这两次操作的代码全删了,人疯了,疯了疯了
git reset --hard HEAD~2
这条语句的意思是reset(重置)到2个版本之前,HEAD 表示指向分支的指针
这条语句会删除工作区这两个版本操作的文件
1、git reflog看到被删除的commitid,下一步就可以用git reset --hard 被reset前的commitid 恢复到reset之前的版本
用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。
我们要恢复到f15dc99版本
2、执行$git reset --hard f15dc99(被reset前的commitid)
这样数据全回来了,终于回来了
三、git命令log与reflog的比较
转自或参考:git命令log与reflog的比较
https://blog.csdn.net/u013252047/article/details/80230781
用git命令,想看到自己的操作记录,则可以使用log与reflog,它两个的区别如下:
1.git log 命令可以显示所有提交过的版本信息
例如
如果感觉太繁琐,可以加上参数 --pretty=oneline,只会显示版本号和提交时的备注信息
2.git reflog 可以查看所有分支的所有操作记录(包括已经被删除的 commit 记录和 reset 的操作)
例如执行 git reset --hard HEAD~1,退回到上一个版本,用git log则是看不出来被删除的commitid,用git reflog则可以看到被删除的commitid,我们就可以买后悔药,恢复到被删除的那个版本。