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をコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次