微信扫一扫打赏支持

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,我们就可以买后悔药,恢复到被删除的那个版本。

 

 

 

 

 
posted @ 2020-10-18 21:16  范仁义  阅读(3957)  评论(0编辑  收藏  举报