Git误输入origin main替代master推送后如何恢复未提交更改
Git误操作恢复步骤
- 首先执行
git reflog查看本地所有HEAD操作记录,找到误操作前最后一次正常提交对应的哈希值(每条记录前缀的7位字符就是哈希值,可根据提交信息快速定位) - 执行
git status确认当前所在分支为master,无其他未完成的变基、合并操作。
执行内容恢复
你之前执行soft reset未恢复工作目录内容,是因为soft reset只会将提交回退到暂存区,不会同步到工作目录,按以下操作执行即可恢复为未提交状态:
- 执行
git reset --mixed <你刚才找到的正常提交哈希值>,该命令会将对应提交的所有变更内容直接回退到工作目录,变更状态为未暂存,符合你需要的「未提交状态」要求 - 命令执行完成后再次运行
git status,即可看到所有之前的变更内容都已恢复。
后续推送注意事项
git push origin main本身仅会触发远端推送失败,不会修改本地任何代码内容,后续推送使用正确命令即可:git push origin master
注意:执行恢复操作前不要新增commit、执行clean或者checkout切换分支,避免变更记录被覆盖。
内容的提问来源于stack exchange,提问作者DuchSuvaa
相关产品推荐
相关产品推荐

