git cloning Goldfish对象损坏错误

时间:2016-07-21 11:18:06

标签: android git github android-kernel

我尝试使用以下命令

来克隆Android Goldfish内核源代码
git clone https://android.googlesource.com/kernel/goldfish

但是因为它需要下载大约900MB的数据,所以我想到了这个,并且经历了这个,

git clone https://android.googlesource.com/kernel/goldfish --branch android-goldfish-3.4 --depth 1

这将下载大小减少到大约120MB并且下载已完成,但在解压缩对象时出错。

后来当我使用git status时,我看到大量文件被删除,并且显示它们甚至没有添加和提交。我愚蠢地添加了它们并将它们作为名为'local commit'的新提交提交。

git log --oneline
ca6ded2 Local Commit
2a51970 Merge branch 'android-3.4' into android-goldfish-3.4
c9cb2c8 UPSTREAM: netfilter: x_tables: fix unconditional helper
ac342b9 Merge branch 'android-3.4' into android-goldfish-3.4

现在检查了远程文件后,很明显显示已删除的文件和我提交的文件位于远程但未在本地显示。所以我试着重置为之前的提交。但是显示了这些错误:

git reset 2a51970
error: failed to read object b56d12bf5900c8f266132bc9b50dadfb092af10a at offset 26783674 from .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack
fatal: packed object b56d12bf5900c8f266132bc9b50dadfb092af10a (stored in .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack) is corrupt

fsck显示以下内容:

git fsck
Checking object directories: 100% (256/256), done.
error: .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack SHA1 checksum mismatch
error: index CRC mismatch for object b56d12bf5900c8f266132bc9b50dadfb092af10a from .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack at offset 26783674
error: cannot unpack b56d12bf5900c8f266132bc9b50dadfb092af10a from .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack at offset 26783674
error: index CRC mismatch for object 6149b476d9dffe06bcd1e3e3136bc335fd3dbf98 from .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack at offset 27883077
error: inflate: data stream error (invalid distance too far back)
error: cannot unpack 6149b476d9dffe06bcd1e3e3136bc335fd3dbf98 from .git/objects/pack/pack-3ce58ac57f33a98f718e926caccca5ea5fa3a1fd.pack at offset 27883077
Checking objects: 100% (41134/41134), done.

我的问题: 有没有办法解决这个问题,而无需再次启动克隆过程。 和 克隆是否正确完成或我在那里做错了什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

我似乎找到了解决这个问题的方法!

对于与git相关的所有对象损坏错误,我认为最好的,无忧无虑的事情将是使用 git-repair

我的解决此问题的程序(Ubuntu 16.04):

  1. 安装git-repair

    sudo apt install git-repair

  2. 转到本地git repo目录

  3. 运行git-repair

    GIT-修复

  4. 多数民众赞成!所有腐败的物体都被修复了(没有进入技术细节!)并且回购处于工作状态。