0

次のコマンドを使用して、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.

私の質問: クローン作成プロセスを再度開始せずにこれを修正する方法はありますか? そして、クローニングは適切に行われましたか、それとも私が何か間違ったことをしましたか?

ありがとうございました。

4

1 に答える 1

0

これを修正する方法を見つけたようです!

git に関連するすべてのオブジェクト破損エラーについて、私は最善の、手間のかからない、やるべきことはgit-repairを利用することだと思います。

これを修正する手順 (Ubuntu 16.04):

  1. git-repair をインストールする

    sudo apt install git-repair

  2. ローカルの git リポジトリ ディレクトリに移動します

  3. git-repair を実行します

    git-修復

それでおしまい!破損したオブジェクトはすべて修正され (技術的な詳細には触れません!)、レポは正常に動作していました。

于 2016-07-22T08:09:21.163 に答える