Gitリポジトリの操作でerror: RPC failed;の解決方法
Gitでリモートリポジトリからcloneしようとしたときに次のようなエラーが発生した場合の解決方法です。
このエラーは、リモートリポジトリからのデータ転送中に何らかの問題が発生したことを示しています。
error: RPC failed; curl 18 transfer closed with outstanding read data remaining
fetch-pack: unexpected disconnect while reading sideband packet
fatal: protocol error: bad pack header
fetch-pack: unexpected disconnect while reading sideband packet
fatal: protocol error: bad pack header
解決策には次のような方法があります。
- ネットワーク接続を確認する
まずは物理的にネットワークが切断されていないか確認してください - パケットサイズを変更する
次のコマンドを実行し、パケットサイズを増やします
上記では、デフォルトの1MBから500MBに増やしていますgit config --global http.postBuffer 524288000
- クローンするリポジトリの履歴を制限する
次のコマンドを実行し、クローンするリポジトリの履歴を指定します
上記では履歴を1つだけ取得しますgit clone --depth 1 <リモートリポジトリ>
私はこれで解決しました
ドキュメントなどのバイナリファイルを管理していて、大量の履歴があると発生するようです。
その場合、取得する履歴をフルではなく制限することでクローンする時間を短縮できます。
ただし、クローンされる履歴が不完全になるため、注意が必要です。