赞
踩
问题:本地编写代码时,由于对git方法不熟悉,加之脑抽,执行了git reset--hard,把本地只add但未commit的代码全部删除了
分析:git reset --hard 是把本地库里的文件全部替换到了工作空间里,还是可以找回
解法:
1.执行 find .git/objects -type f | xargs ls -lt | sed 30q ,这里30q 的意思是最近30次的add,执行后结果
$ find .git/objects -type f | xargs ls -lt | sed 60q
-r—r—r— 1 Y Administ 222 Feb 3 21:00 .git/objects/02/18fb759136a0ee550d2e4d179f01bd75af48a0
2.执行git cat-file -p ID > a.md
- ID即上面objects后面的值,去掉/。eg:上述add的ID就是0218fb759136a0ee550d2e4d179f01bd75af48a0
- a.md是你要恢复后的文件名称和后缀。eg:我是java文件,恢复后我就1.java,2.java这样写
执行完上述2个命令后,恢复后的文件就会出现在项目目录里面
反思:
1.git reset --hard要慎用
2.代码及时commit
参考链接:https://blog.csdn.net/yeluosc/article/details/76690678,感谢这位大哥的文章,我的代码成功找回,但是这篇文章比较难搜,所以我再优化下,以便帮忙到更多小伙伴!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。