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

打印 上一主题 下一主题

主题 1022|帖子 1022|积分 3066

1 媒介

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

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

  1. git fsck --lost-found
复制代码

找到commit过的代码痕迹,dangling commit后面跟的就是代码。
2.2 步骤2

  1. git show [dangling commit后面的字符串]
复制代码

查看哪一个是自己删除的代码。
2.3 步骤3

  1. git rebase [dangling commit后面的字符串]
复制代码

恢复啦。
3 跋文

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

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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

西河刘卡车医

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表