Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

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

http://every-studio.com/wordpress/?p=18

2

http://urashita.com/archives/2293

3

https://cithukyaw.wordpress.com/2014/09/08/fix-for-the-fatal-error-early-eof-on-git-clone/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした