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

执行git checkout后丢失Git提交,如何恢复本地分支原有状态?

修复Git Detached HEAD并恢复原有提交

1. 定位目标提交哈希

执行git reflog,在输出记录里找到你执行git checkout origin:remote-branch-name之前的条目,对应的一串7位(或更长)字符的哈希值,就是包含合并提交和未推送提交的目标状态位置。

2. 恢复本地分支并关联HEAD

假设你的本地分支与远程分支同名(比如main,替换成你的实际分支名):

  • 切换回本地分支:git checkout main
  • 将本地分支指针直接移动到目标提交(完全保留原有提交历史,不生成新提交):git reset --hard <你找到的哈希值>

如果忘记本地分支名,执行git branch即可查看所有本地分支,不带*标记的就是你需要的分支。

3. 验证修复结果

  • 执行git log确认合并提交和新增提交都在历史记录中
  • 执行git status会显示当前处于本地分支上,工作区无未提交变更
  • 再次尝试git push,即可正常推送之前未推送到远程的提交

⚠️ 注意:git reset --hard会清除当前工作区和暂存区的未提交修改,若有未保存的改动,先执行git stash暂存,之后可通过git stash pop恢复。

内容的提问来源于stack exchange,提问作者Electric-Gecko

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 10:43:16