117
86

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GitでCloneしようとするとearly EOFエラーが発生した

Last updated at Posted at 2015-06-30

Gitで自宅サーバに置いていたレポジトリをWindows PCへCloneしようとしていた時の事

事象

以下のようなエラーが発生した

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

原因

調べていくと原因はレポジトリがでかすぎることっぽい。

解決策は大体以下3つなのかなと思った。

1.gitのhttp通信制限を増やす
2.サーバー側でgc&repackする
3.そもそも一度にcloneする量を減らす

事象の原因によって1~3のどれで直るかは違う模様。
筆者は1を試したがダメで、3を試してうまくいった。

各解決策がどういった詳細な原因と結びついているのか、については調べていない。
1は1つのファイルに対する制限で、3は全体の容量を減らしてるから違うとかそんな感じなのかなと思っている。
正直この問題を深く追いかけるつもりはない。

解決策

以下の設定をクライアント側に追加する

git config --global http.postBuffer 524288000

2

以下のコマンドをサーバ側のレポジトリで打つ

git gc
git repack -a -f -d --window=250 --depth=250

3

以下のコマンドでclone&Fetchする。

git clone --depth 1 <my_repo_URI>
git fetch --unshallow

最初のfetchからいきなりunshallowしなくて、以下のように徐々にdepth増やすのでも良い。

git fetch --depth 2
git fetch --depth 3
git fetch --depth 4

参考サイト

どうでもいいんだけど3のサイトの人「(internet speed is slow in our country; working on high speed internet is my dream ;-)」のカッコ書きが泣ける。

1

2

3

117
86
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
117
86

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?