我在结帐后刷新gitk历史记录工具时遇到了Windows蓝屏。一旦我的电脑重新启动,我的本地仓库就完全搞砸了。任何git命令都会导致以下错误消息:
error: unable to unpack c6424c31a54e292669cfdcba3136e7962c690437 header
error: inflateEnd: stream consistency error (no message)
fatal: loose object c6424c31a54e292669cfdcba3136e7962c690437 (stored in .git/objects/c6/424c31a54e292669cfdcba3136e7962c690437) is corrupt
引用的文件已满0。在关于恢复本地仓库的misc帖子之后,我运行了git fsck
,这导致了相同的错误输出。备份.git目录后,我删除了损坏的文件并多次重新运行git fsck
(一个接一个地删除损坏的文件),直到我得到以下输出:
Checking object directories: 100% (256/256), done.
Checking objects: 100% (38484/38484), done.
error: HEAD: invalid sha1 pointer c6424c31a54e292669cfdcba3136e7962c690437
error: refs/heads/CSS does not point to a valid object!
error: 8a91e61fae289397ca2668a3971199dc1596decf: invalid sha1 pointer in cache-tree
error: a21652baded5946d40820d716b14ab86008889e8: invalid sha1 pointer in cache-tree
broken link from tree 770bb33eb5f833e57562a2f1d9a4c23da0865b16
to tree 8a91e61fae289397ca2668a3971199dc1596decf
broken link from tree 770bb33eb5f833e57562a2f1d9a4c23da0865b16
to tree a21652baded5946d40820d716b14ab86008889e8
dangling commit <sha1> <many times>
dangling blob <sha1> <many times>
missing tree 8a91e61fae289397ca2668a3971199dc1596decf
missing tree a21652baded5946d40820d716b14ab86008889e8
缺少的树sha1都对应于我之前删除的损坏文件。
c6424c31
也是我删除的损坏文件之一,refs / heads / CSS是当前分支。
git ls-tree
的{p> 770bb33e
返回项目的根目录。对于缺失的树,git ls-tree
当然会返回not a tree object
。我不知道损坏的文件或提交。
我无法结账到另一个分支或主人,因为git告诉我有本地更改(我无法提交或重置)。
我想我最终丢失了一些数据,但希望从本地存储库尽可能多地恢复:它包含一些尚未推送的已提交数据,并希望在内部结构中找到它。
任何帮助都将不胜感激。
答案 0 :(得分:0)
我的建议是一种解决方法,但也许它适用于你: