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

Git切换分支后提交丢失,如何找回最新提交的代码?

找回丢失的Git提交

你的修改并没有真的丢失,只是因为分支操作的问题,提交未出现在当前development分支的日志里。按以下步骤找回:

  1. 查看所有HEAD历史(引用日志)
    Git会记录所有HEAD的移动轨迹,包括未被任何分支指向的提交。执行命令:
git reflog

输出里会找到类似HEAD@{1}: commit: example message的条目,对应的哈希值(比如def5678)就是你之前完成的提交。

  1. 找回提交内容
  • 若要将该提交合并到当前development分支:
    git cherry-pick <提交哈希>
    
  • 若只是临时查看该提交的代码:
    git checkout <提交哈希>
    
  • 若想直接将当前development分支重置到该提交(会覆盖当前分支现有内容,确保当前无未提交修改后再执行):
    git reset --hard <提交哈希>
    
  1. 另一种排查方向:检查原主分支
    你最初是在主分支(比如main或master)完成的提交,切换到development后工作区会替换为该分支的旧版本代码。可以切换回主分支确认:
git checkout main
git log --oneline

如果找到那条example message的提交,再用cherry-pick将其复制到development分支即可。

问题根源

你最初在主分支完成了提交,但切换到development分支后,工作区会替换为该分支的旧代码。此时重复提交命令并没有把主分支的提交同步过来,反而因为当前工作区是旧版本,导致你误以为修改丢失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 06:35:05