Gitのpushで発生するhttp.postBufferのエラーへの対応方法

Gitのリモートリポジトリにpushするときに次のようなエラーが発生して失敗してしまうことがあります。

error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; curl 56 LibreSSL SSL_read: Connection reset by peer, errno 54
send-pack: unexpected disconnect while reading sideband packet

私の場合は、AWSのCodeCommitにpushするときにこのエラーが起きました。対策方法は2通りあります。

目次

対応方法1: http.postBufferを増やす

シェルに出力されている通りにhttp.postBufferの値を増やすという方法です。次のようにします。

git config --global http.postBuffer 524288000

値については環境によって異なると思いますが、とりあえず大きいすれば良いはずなので大きめの値を指定します。

この方法で直る場合もあるようですが、私の場合はこの方法では直りませんでした。

対応方法2: 接続プロトコルを変更する

シェルに出力されているエラーを見るとhttpの転送時の転送容量が問題になっているようです。Gitはhttpsの他にsshによる接続にも対応しています。sshで接続するには次の手順で行います。

STEP
サーバーに公開鍵を登録する

sshで接続するには接続するアカウントのsshの公開鍵をサーバーに登録します。

STEP
リポジトリのURLを変更する

git remote set-urlを使ってURLをssh接続のURLに変更します。

git remote set-url origin ssh://URL_TO_REPOSITORY
STEP
URLを確認する

git remote -v でURLを確認します。通常はfetchpush両方ともSTEP 2で変更されますがpushだけ変わらないことがあります。その場合は次のようにしてpush用のURLも変更します。

git remote set-url --push origin ssh://URL_TO_REPOSITORY

私の場合は対応方法2のsshに変更するという方法で解決でき、正常にpushできるようになりました。

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次