问题:本地编写代码时,由于对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,感谢这位大哥的文章,我的代码成功找回,但是这篇文章比较难搜,所以我再优化下,以便帮忙到更多小伙伴!

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐