1. ホーム

git clone エラーの警告。クローンには成功しましたが、チェックアウトに失敗しました。

2022-02-26 23:40:21
<パス

git clone はエラーを発生しました。

10:23:54 remote: オブジェクトを数えています。512376、完了しました。
10:23:58 remote: オブジェクトを圧縮しています。100% (357372/357372), 完了しました。
11:36:04 リモート 合計512376(デルタ119614)、再利用512376(デルタ119614)です。
11:36:04 オブジェクトを受信しています。100% (512376/512376), 6.74 GiB | 1.60 MiB/s, 完了しました。
11:36:21 差異の解消を行います。100% (119614/119614)、完了しました。
11:37:02 error: inflate: data stream error (不正なデータチェック)
11:37:02 error: inflate: データストリームエラー (不正なデータチェック)
11:37:02 fatal: パックされたオブジェクト 42a8629df252c10f6e3a19ad89307405a45a4f (stored in .git/objects/pack/pack- 3c607af44e7a818dfb7f8ff535a6fc2ea675cc59.pack) is corrupt
11:37:02 警告 クローンには成功しましたが、チェックアウトに失敗しました。
11:37:02 'git status'でチェックアウトされたものを検査することができます。
11:37:02 そして 'git checkout -f HEAD' でチェックアウトを再試行します。

チェックアウト $ git fsck --full

00:44:54 Checking object directories: 100% (256/256), done.

00:45:21 error: .git/objects/pack/pack-3c607af44e7a818dfb7f8ff535a6fc2ea675cc59.pack SHA1 checksum mismatch

00:47:02 error: index CRC mismatch for object 3467975a9229614d11616b86e3cf2e403ee4bad0 from .git/objects/pack/pack- 3c607af44e7a818dfb7f8ff535a6fc2ea675cc59.pack at offset 6001461490

00:47:02 error: inflate: data stream error (incorrect data check)

00:47:02 error: cannot unpack 3467975a9229614d11616b86e3cf2e403ee4bad0 from .git/objects/pack/pack- 3c607af44e7a818dfb7f8ff535a6fc2ea675cc59.pack at offset 6001461490

00:47:18 Checking objects: 100% (512376/512376), done.

原因を確認する。

$ free -m
14:11:19 合計使用済み空き共有バフ/キャッシュあり
14:11:19 Mem: 7966 75 324 6 7566 7546
14:11:19 スワップ: 1021 3 1018

使用可能なメモリが少なすぎることが判明し、で解決。
同期
sudo su
echo 3 > /proc/sys/vm/drop_caches
以下のように結果を表示します。

フリー -m

14:39:11 合計使用済み空き共有バフ/キャッシュあり
14:39:11 Mem: 7966 76 7824 6 64 7705
14:39:11 スワップ: 1021 3 1018

再クローン

14:44:15 remote: Counting objects: 512376, done.
14:44:52 remote: Compressing objects: 100% (357684/357684), done.
14:57:29 remote: Total 512376 (delta 119622), reused 511847 (delta 119302)
14:57:29 Receiving objects: 100% (512376/512376), 6.74 GiB | 9.13 MiB/s, done.
14:57:46 Resolving deltas: 100% (119622/119622), done.
15:06:39 Checking out files: 100% (557039/557039), done.

問題解決しました。

なぜメモリが残り少ないのか?最初、git clone は接続が切れたときにエラーを報告して、キャッシュを解放せずに占拠してしまいました。そして、私のgitリポジトリは8Gのサイズなので、そのままキャッシュが8Gになり、一気にメモリが足りなくなりました。