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

Git丢失提交恢复求助:提交后仓库回到初始克隆状态

找回丢失的Git提交内容指南

嘿,我懂这种崩溃的感觉——熬了好久的作业突然没了,谁都得慌!不过别放弃,Git其实留了不少“后手”,咱们可以试试这些方法找回你的内容:

1. 挖掘Git的对象仓库(最可能有用的方法)

Git会把所有曾经处理过的内容(哪怕没提交)存在本地.git/objects目录里,咱们可以用这个命令把这些“无主”的对象找出来:

git fsck --lost-found

这个命令会把所有没被任何分支或标签引用的对象,放到.git/lost-found/目录下:

  • 进入.git/lost-found/commits,用git show <commit-hash>逐个查看提交内容,要是找到你的作业更改,直接用git branch recover-my-work <commit-hash>把它变成一个新分支,就能正常使用了。
  • 如果你的更改还没来得及add或commit,就去.git/lost-found/other里找文件blob,用git show <blob-hash>查看内容,把有用的部分复制出来存好。

2. 检查是否有遗忘的Stash

有时候手滑把内容暂存了自己却忘了,试试这个命令看看:

git stash list

要是有结果,用git stash apply stash@{0}(把0换成对应stash的编号)就能把暂存的内容恢复回来。

3. 排查所有本地分支和隐藏引用

说不定你的更改藏在某个没注意到的分支里,先看看所有分支:

git branch -a

切换到陌生的分支看看有没有内容。另外可以用这个命令列出所有Git的引用(包括那些隐藏的):

git for-each-ref --format='%(refname) %(objectname)'

对每个可疑的引用,用git show <object-hash>看看里面的内容。

4. 远程分支救急(如果曾经推送过)

如果你之前把更改推送到过远程的secondary分支,那远程仓库大概率还保留着。试试:

git fetch origin secondary
git checkout origin/secondary

切换到远程的secondary分支看看,要是有内容,就基于它创建新的本地分支:git branch new-secondary origin/secondary。

关键提醒

不管找到什么内容,先把文件复制到仓库外的安全地方备份!别等找回来又搞丢了,血的教训啊。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:28:54