🦡
【今更】`Git`のバッファサイズを変更する
【今更】Gitのバッファサイズを変更する
はじめに
2024-06-14 17:23:03.176 [info] error: RPC failed; HTTP 400 curl 22 The requested URL returned error: 400
このエラーでGitHubにpush出来ませんでした。
今更感がありますが、この問題に対処する過程で知った事柄やどのような手順で解決したかを残します。

環境
$ inxi -Sxxx --filter
System:
Kernel: 6.5.0-35-generic x86_64 bits: 64 compiler: N/A Desktop: Unity
wm: gnome-shell dm: GDM3 42.0 Distro: Ubuntu 22.04.4 LTS (Jammy Jellyfish)
前提
- ネット接続に問題はない(ファイアウォール等含める)
-
GitHub Statusにも問題はない
Gitのバッファサイズについて
GitHubにpushするとき、1つのファイルサイズの上限は100MBです。またリポジトリ全体の制限は1GBです。
これだけに気を取られていましたが、1度にpushするファイル数が多すぎる場合も問題が発生するようです。(この上限値はわかりません)
この時問題となるのがhttp.postBufferのサイズだということです。
デフォルトでは1MBとのことです。この値を取得するには以下のようにします。
git config --get http.postBuffer
なにも出力されなければデフォルト値(1MB)です。
対策として、まずこの値を大きく設定します。
例えばバッファーサイズを150MBにする場合は以下のようになります。
git config --global http.postBuffer 157286400
補足
150MBの根拠
- データ転送上、無理のない大きさ
- エラー発生時に困らない大きさ
--globalオプション
Gitの設定の適用範囲
-
--global- ユーザー全体の設定範囲
-
--local- 現在のリポジトリにのみ適用
-
--system- システム全体の設定範囲
http.postBuffer以外の設定項目
Gitの一般的な設定項目
| 設定項目 | 説明 | コマンド例 |
|---|---|---|
user.name |
コミットの作者名を設定 | git config --global user.name "Your Name" |
user.email |
コミットの作者メールアドレスを設定 | git config --global user.email "your.email@example.com" |
core.editor |
コミットメッセージの編集に使用するエディタを設定 | git config --global core.editor "vim" |
merge.tool |
マージ時に使用するツールを設定 | git config --global merge.tool "meld" |
diff.tool |
差分表示時に使用するツールを設定 | git config --global diff.tool "meld" |
core.autocrlf |
行末変換を自動的に行う設定 |
git config --global core.autocrlf true (Windows), git config --global core.autocrlf input (Unix系) |
pull.rebase |
git pullの動作を設定し、プル時にリベースを行う |
git config --global pull.rebase true |
color.ui |
Gitの出力にカラーを使用する設定 | git config --global color.ui auto |
credential.helper |
認証情報をキャッシュする設定 | git config --global credential.helper cache |
merge.conflictStyle |
マージ時の競合表示スタイルを設定 | git config --global merge.conflictStyle diff3 |
diff.ignoreSubmodules |
サブモジュールの差分を無視する設定 | git config --global diff.ignoreSubmodules dirty |
さいごに
勉強になりました。
どなたかの助けになれば幸いです。
ありがとうございました。

Discussion