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万円以上の大幅アップがある |
転職サポート内容 |
|
|
|
公式サイト | リクナビネクスト | テックゲート | レバテックキャリア |