You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多次错误执行git reset后,如何恢复本地最新代码?

Git代码恢复方案

先明确reflog的SHA含义

reflog中每条记录的SHA是命令执行后的HEAD指向状态。比如HEAD@{0}: reset: moving to bc6968c,意思是执行完这次reset命令后,HEAD指向了bc6968c这个提交。

你的操作时间线梳理

从reflog可还原操作顺序:

  • 切到cleanup-client分支时,HEAD指向5011960(HEAD@{4})——这是你本地包含一天工作的最新分支状态
  • 两次执行git reset --hard origin/cleanup-client,将HEAD强制回退到远程旧版本bc6968c(HEAD@{3}、HEAD@{2}),丢失本地最新代码
  • 尝试git reset 5011960后,又通过VS Code丢弃所有变更,再次回到旧状态
  • 最后执行git reset bc6968c,当前HEAD停留在bc6968c

恢复步骤

  1. 先确认目标提交内容:执行以下命令查看5011960的提交内容,确认这是你丢失的一天工作:
    git show 5011960
    
  2. 强制恢复到目标状态:如果确认内容正确,执行以下命令将本地分支强制恢复到包含你工作的提交:
    git reset --hard 5011960
    

注意事项

  • 执行git reset --hard会覆盖当前工作区和暂存区的所有未提交变更,执行前确保当前没有需要保留的未提交内容
  • 恢复后,若需要覆盖远程旧分支,可使用git push --force origin cleanup-client,但推送前要确认远程没有其他人在使用该分支

内容的提问来源于stack exchange,提问作者bmitc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:25:05