西河刘卡车医 发表于 2024-9-1 09:17:32

如果不小心git reset --hard了怎么恢复代码?

1 媒介

本来是想把commit的存在缓存区的代码删除,再重新commit一遍的,用了git reset --hard HEAD^ 这个命令后,没想到当地代码退回到初始版本了,修改过的全部不见了。(悔不当初!)
2 解决办法

条件: git上传代码到堆栈add、commit、push,代码必须是commit过的才有效,只有add不行。
2.1 步骤1

git fsck --lost-found
https://i-blog.csdnimg.cn/blog_migrate/00a6223c99870c6a233fb9cd1e2e4092.png
找到commit过的代码痕迹,dangling commit后面跟的就是代码。
2.2 步骤2

git show
https://i-blog.csdnimg.cn/blog_migrate/328f68ec29d47b01ecf0851a10454511.png
查看哪一个是自己删除的代码。
2.3 步骤3

git rebase
https://i-blog.csdnimg.cn/blog_migrate/733d74c6903b2bbdd1cec4340fdcbb42.png
恢复啦。
3 跋文

这个方法必须是commit过的代码才行,如果只有add那还是恢复不了。所以,人生建议谨慎使用reset命令!
4 跋文2.0

顺便来个正确的删除commit而不删除当地代码的方法:
git log打印commit日志
git reset --soft 回退到这个版本的commit
接着实行add、commit、push就行了

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 如果不小心git reset --hard了怎么恢复代码?