Git用サーバを管理する立場での、覚え書きになります。
git client側の調整
git pushをしたとき、411のエラーが出てしまう場合があります。
通常、テキストのようなソースコードのpushでは、こういう症状は発生しないのですが、バイナリや画像データを登録している場合は、pushの際にこのエラーが出ることがあります。
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
こういう時は、bufferのサイズを調整しておきます。
以下は、150MBに設定する例。
% git config http.postBuffer 157286400
もしくは .gitconfig に
[http]
postBuffer = 157286400
を追加するなど。
サーバ側の調整
上記のように、クライアント側でバッファサイズを上げても、サーバ側がそれを処理できない場合があります。そもそも、アップロードの上限値を超えてしまっていたらダメ。
GitのサーバのフロントにNginxを使っている場合は、Nginxのデフォルトのファイルアップロードの上限が小さめなので注意。(Apache自体は上限はデフォルトでは指定無し)
この場合、client_max_body_size を調整します。