如何撤销git reset --hard HEAD~1操作以恢复未推送的本地git代码?
Git reset --hard 操作恢复指南
前置说明
Git 会在本地留存所有提交的快照数据,只要你执行重置操作后没有手动运行 git gc 清理冗余对象,就可以恢复被删除的提交内容。
具体恢复步骤
- 第一步:查询被丢弃的提交哈希
执行git reflog命令查看本地HEAD指针的变更历史,输出结果会包含你刚才的重置操作记录,示例如下:
7a524b86f (HEAD -> 你的分支名) HEAD@{0}: reset: moving to HEAD~1
892dc41f HEAD@{1}: commit: 你最近一次被撤销的提交对应的注释内容
上述记录里,reset操作上方的那条提交记录(示例中的892dc41f)就是你要恢复的目标提交哈希。
- 第二步:执行恢复命令
拿到目标提交哈希后,执行以下命令即可恢复到重置前的状态:
git reset --hard <你查询到的目标提交哈希>
执行完成后,你之前被删除的项目文件就会全部恢复。
后续操作建议
如果之后仅需要撤销最近一次提交、但不希望删除工作区修改,不要使用 --hard 参数,改用 git reset --soft HEAD~1 即可,该命令只会移动分支指针,不会改动工作区和暂存区的内容。
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

