git reset--hard后恢复暂存区(未提交)文件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值