git reset –hard误操作,如何恢复数据

作者: wencst 分类: linux,Uncategorized,windows 发布时间: 2017-02-17 21:58 阅读: 1,139 次

今天遇到了个糗事,git commit后push时,提示失败,有文档需要merge,excel文档无法用工具merge,反正都是我自己写的文档,所以根本就没想,直接执行了

git reset –hard xxxxx

然后就无语了,另外一个已commit的文档忘记备份了,网上找了一些方法,下面说一下我的尝试。

首先在git路径下打开git bash

方法一:(未成功)

git fsck –lost-found

然后去.git/lost-found文件夹下去找,据说如果commit后未push的可以在这里找到,但是我没有,可能这种方法只针对于soft reset吧,后面未去尝试。

方法二:(未成功)

git reflog

我想恢复的版本是a404eb8

git reset a404eb8

但是我已经commit未push的文件还是没有出来,我以为我恢复的版本可能不对,所以多试了几个版本,依旧没有找到我的文档。

方法三:(成功)

前面步骤同方法二

git reflog

我想恢复的版本是a404eb8

git reset –hard a404eb8

此时,神奇的找回了我的版本的文档!!

总结:

1.大家尽量不要将git使用–hard的方式恢复,这样会出意想不到的问题,好在我这个文档的修复是commit过的,一旦没有commit就恢复,后果不堪设想;

2.大家一定要保持经常commit的习惯,即使没有完成修改,commit后不push到服务器即可,但一定要commit,否则出了问题就无法恢复了。

3.出了问题,相信git还是很强大的,一定要有耐心去调试各种问题,并在调试之前做好备份,将git整个文件夹备份一下,万一这个环境被我玩坏了,起码我还能恢复到以前我认为不完美但相对还算完美的版本,哈哈!

如果文章对您有用,扫一下支付宝的红包,不胜感激!

欢迎加入QQ群进行技术交流:656897351(各种技术、招聘、兼职、培训欢迎加入)