git cloneで「the remote end hung up unexpectedly」エラーが出たときの3つの対処方法!「http.postBuffer」を変更しても解決しなかったときに読む

git clone したら以下のようなエラーが出ました。

error: RPC failed; curl 56 LibreSSL SSL_read: SSL_ERROR_SYSCALL, errno 60
fatal: The remote end hung up unexpectedly
fatal: early EOF
fatal: index-pack failed

上記のようなエラーがでる理由は、ネット上の記事によると、リポジトリが肥大化し「http.postBuffer」で設定したデータサイズを超えると発生します。

以下、gitのドキュメントより抜粋

 

http.postBuffer

Maximum size in bytes of the buffer used by smart HTTP transports when POSTing data to the remote system. For requests larger

than this buffer size, HTTP/1.1 and Transfer-Encoding: chunked is used to avoid creating a massive pack file locally. Default is

1 MiB, which is sufficient for most requests.

 

しかし、私の場合、ネットの記事通りgitのコマンド

「 git config –global http.postBuffer 2M」

をやっても解消されませんでした。

そのような場合は、

「git clone –depth 1」や「git fetch –unshallow 」、gitの「config」ファイル設定をしていたら解消したので解説します!

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

 

解消方法1・ネットの記事通り「http.postBuffer」の設定を変更する

 

「fatal: The remote end hung up unexpectedly」エラーに遭遇した人たちの記事を見ていると

stackoverflowを参考にして、以下のコマンドを実行すると解決すると書いてあります。

 

 git config --global http.postBuffer 2M

 

上記のコマンド実行後、再度、git cloneして様子を見ます。

 

stackoverflowの記事より

https://stackoverflow.com/questions/15240815/git-fatal-the-remote-end-hung-up-unexpectedly

 

これで解消するケースもありますが、私の場合は解消しませんでした。

 

 

解消しない場合は、次に紹介する最新のリポジトリの内容のみ取得して、差分をfetchする方法を試します。

解消方法2・最新のリポジトリの内容のみ取得してfetch

 

今回の問題は、ダウンロードしようとしているリポジトリの大きさが多いためです。

解消方法として、

一度にリポジトリの内容を反映させようとせず、最新のリポジトリの内容のみ取得します。

git  clone --depth 1 https://your.site.git

 

その上で差分を取得します。

 

git fetch --unshallow         

 

これでダウンロードができて、めでたしめでたしになる人もいます。

が、私の場合は「fatal: The remote end hung up unexpectedly」が発生してうまくいきませんでした。

 

最終手段は、gitのconfigファイルを修正してgit fetchして差分ダウンロードを試みます。

 

プログラミングスクール検索・未経験から失敗しないエンジニア転職はペン太ブル

 

解消方法3・git configファイルを編集してトライ

 

 

まずは、git cloneして最新のリポジトリの情報のみ取得します。

 

git  clone --depth 1 https://your.site.git

 

そのうえで、以下のようにgitのconfigファイルを編集します。

gitのconfigファイルを開けてみると以下のようになっています。

 

 [remote "origin"]
	url = https://your.site.git
	fetch = +refs/heads/master:refs/remotes/origin/master

 

ファイルの内容を確認すると、マスターブランチの内容だけ取得できるようになっているため、「master」の部分を「*」に置き換えて、すべてのブランチのデータを取得できるようにします。

 

 [remote "origin"]
	url = https://your.site.git
	fetch = +refs/heads/*:refs/remotes/origin/*

 

その後、「git fetch」を実行したら無事に差分をダウンロードできたのです。

 

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア

 

まとめ

そもそも「 The remote end hung up unexpectedly」エラーが出るということは、かなりリポジトリが肥大化しているといえる。使わなくなった画像などのリソースは、履歴から削除するなどのメンテナンスが必要になるかもしれないですね。

\IT未経験者からのサポートあり!転職サービス3選!!/

サービス名
未経験 未経験OK 未経験の転職専用 経験者向け
公開の求人数 ITエンジニア全体で1万件以上
ITエンジニア未経験で600件以上
未公開 5,000件以上
利用対象 全職種 IT特化 IT特化
特徴 ✓誰もが知る転職サービス
✓経歴を登録しておくとオファーが来る
✓企業担当者と条件交渉
✓スキルの身につく企業を紹介
✓IT専門のエージェントが対応
✓転職成功すると年収200万円以上の大幅アップがある
転職サポート内容
  • 求人検索
  • 企業担当者と交渉
  • 求人紹介
  • ライフプランのサポート
  • キャリア相談
  • 求人紹介
  • 提出書類の添削
  • 面接対策
公式サイト リクナビネクスト テックゲート レバテックキャリア
最新情報をチェックしよう!