WEB/システム/IT技術ブログ

大規模リモートリポジトリのGit clone時に途中でエラーになりcloneできない

Githubからgit clone時に途中でエラーとなり、cloneできない事象に遭遇しました。
環境はWindows 10、git 2.18です。

エラーの内容は以下のとおり

fatal: early EOF
fatal: The remote end hung up unexpectedly
fatal: index-pack failed

原因ははっきりとしませんでしたが、どうやらリポジトリの容量が大きいことで発生してるようです。

そこで、まずはオプション「depth」を使って最新の履歴のみをcloneします。

>git clone --depth 1 git@github.com:helog/helog.git

無事cloneできました。

次に、cloneしたディレクトリに移動して、オプション「unshallow」を指定して残りの履歴を取得します。

>cd helog
>git fetch --unshallow

コマンドが無事完了すればclone完了です。

残りの履歴が大きすぎてコマンドを失敗する場合は、オプション「depth」で段階的に履歴を取得し、最後に「unshallow」すると良いようです。
例えば以下の通り。

>git fetch --depth 100
>git fetch --depth 200
>git fetch --depth 300
>git fetch --unshallow

容量制限?タイムアウト?で大規模リモートリポジトリがcloneできない場合は、段階的にデータを落とすことでクリアできます。
そもそもリポジトリが大規模化しないようにメンテナンスもしたほうがよいですね。考えます。

B!

Comment

コメントはありません

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives