---
title: git のコミットメッセージはどこまで大きくできるのか
tags: 
author: [risou](https://docswell.com/user/risou)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/GJ5M4XR9J4.jpg?width=480
description: git のコミットメッセージはどこまで大きくできるのか by risou
published: August 03, 26
canonical: https://docswell.com/s/risou/K3JLXV-2026-08-03-git-commit-message-size
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/GJ5M4XR9J4.jpg)

git のコミットメッセージは
どこまで大きくできるのか
2026.08.01 risou
1


# Page. 2

![Page Image](https://bcdn.docswell.com/page/LE3WGXP2E5.jpg)



# Page. 3

![Page Image](https://bcdn.docswell.com/page/8EDK12L67G.jpg)

Gitプロジェクトのコミットメッセージ指針
area: short summary
problem / motivation
approach
discarded alternatives
一行目は短い要約
一行空けて、コミットの詳細を書く
これはGitの推奨であり、構文制約ではない
3


# Page. 4

![Page Image](https://bcdn.docswell.com/page/V7PKQ14ZJ8.jpg)

コミットメッセージに上限はない
Gitは固定の文字数・byte数上限を
仕様として定めていない
4


# Page. 5

![Page Image](https://bcdn.docswell.com/page/2JVV5YXMJQ.jpg)

ということは、どんなに長い文章も入る
5


# Page. 6

![Page Image](https://bcdn.docswell.com/page/5EGL69VXJL.jpg)

本当に？
6


# Page. 7

![Page Image](https://bcdn.docswell.com/page/4JQY4W657P.jpg)

いろいろ調べてみた
7


# Page. 8

![Page Image](https://bcdn.docswell.com/page/K74WQK4VE1.jpg)

コミットの「サイズ」
同じコミットでも、数える層が異なる
raw commit object（⾮圧縮）
Gitのヘッダー
tree / parent / author / committer / 空行
メッセージサイズには含まれない
commit message（UTF-8 bytes）
subject + 改⾏ + body。ここだけがメッセージサイズ。
feat: cache search results
loose object
全体を圧縮
zlib(raw commit object)
.git/objects にある単体の保存形
packfile
pack(raw commit object, ...)
push / clone / repack の保存・転送形
Store query results for 60 seconds.
This reduces repeated database reads.
payload
API / Actions / Webhookが組み⽴てるJSON
8


# Page. 9

![Page Image](https://bcdn.docswell.com/page/LJ1YPX44EG.jpg)

いろんなコミットで試す
long subject：一行をとっても長く
repeat body：本文繰り返し（高圧縮のときの挙動）
Base64 body：本文を ase64に（低圧縮のときの挙動）
japanese body：UTF-8 byte数での評価
9


# Page. 10

![Page Image](https://bcdn.docswell.com/page/GJWG2NXZ72.jpg)

何が変わる？
同じ100 MBでもpackは約261倍違う
Raw message, commit object, and pack size
macOS arm64 / Git 2.55.0 / generated 2026-08-01
1 MiB
s (log scale)
1 KiB
base64
1 MiB
message
base64
10 MiB
commit object
base64
100 MiB
pack
repeated
1 MiB
repeated
10 MiB
repeated
100 MiB
10


# Page. 11

![Page Image](https://bcdn.docswell.com/page/4EZLD36L73.jpg)

圧縮率は通信に影響する
25 MB message pack push clone
repeat body
74.8 KB 2.874秒 3.571秒
Base64 body 19.0 MB 7.388秒 7.437秒
push先はGitHub
11


# Page. 12

![Page Image](https://bcdn.docswell.com/page/Y76W1X2M7V.jpg)

Git 2.55.0で2 GBを越えてみた
repeat body
raw commit object
約2.001 GB
commit-tree成功、9.784秒
約2.001 GB
header込み（+276 B）
2,148,532,224 B 2,148,532,500 B
maximum resident set size：約4.15 GB
git cat-file ：全文読出し成功 / git fsck ：成功
12


# Page. 13

![Page Image](https://bcdn.docswell.com/page/G75M4X2Q74.jpg)

packfileでも2 GBを越えてみた
Base64本文
packfile
約2.750 GB
commit作成：74秒台
約2.092 GB
pack作成：88.406秒
2,952,790,016 B 2,246,133,494 B
13


# Page. 14

![Page Image](https://bcdn.docswell.com/page/9J29VX4WER.jpg)

サイズが大きくなると
さすがに一定のタイミングで遅くなる
Git operation time by commit-message size
macOS arm64 / Git 2.55.0 / generated 2026-08-01
git / cat_file_read / base64_body
git / cat_file_read / repeated_body
git / commit_tree / base64_body
git / commit_tree / repeated_body
git / repack / base64_body
git / repack / repeated_body
30 s
)elacs gol( sdnoces despalE
5s
1s
1 KiB
1 MiB
10 MiB
Commit message bytes (log scale)
100 MiB
1 GiB
14


# Page. 15

![Page Image](https://bcdn.docswell.com/page/DEY438M9JM.jpg)

クライアントごとに、困り始める場所が違う
Vim 9.1 ： 8 GBで open 12.002秒、末尾移動 13.688秒、save 20.356秒
Neovim 0.12.4 ： 8 GBで open 9.540秒、末尾移動 7.045秒、save 19.258秒
lazygit 0.63.1 ： 84.1 MBで末尾到達 25.706秒。100 MBでは30秒以内に末尾へ到
達できず
IntelliJ IDEA ： 100 MBでも一覧と詳細先頭を表示。ただし全文表示できず
15


# Page. 16

![Page Image](https://bcdn.docswell.com/page/VJNYVQWD78.jpg)

JetBrainsは全文表示を制限する
MAX_COMMIT_MESSAGE_LENGTH = 50000
MAX_COMMIT_MESSAGE_LINES = 3000
50,000文字 または 3,000行
保存上限ではなく、commit detailの表示上限
16


# Page. 17

![Page Image](https://bcdn.docswell.com/page/YE9P6DX8J3.jpg)

17


# Page. 18

![Page Image](https://bcdn.docswell.com/page/GE8DZ32ZED.jpg)

GitHubはどうか
18


# Page. 19

![Page Image](https://bcdn.docswell.com/page/LELMDV217R.jpg)

コミット詳細ページの限界
65,535 B
message本文：全文表示 → 超過すると末尾を切り詰め
19


# Page. 20

![Page Image](https://bcdn.docswell.com/page/4JMYPG85JW.jpg)

GitHub Actionsの限界
65,535 B
push eventのhead_commit.message：超過すると先頭65,535 B + &quot;…&quot;
20


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PJR91Z5Z79.jpg)

10 MBの壁
raw object push / clone / fetch REST API Actions
Web UI
10 MB 成功
成功
起動 表示（本文は65,535 Bで切り詰め）
10 MB + 1 B 成功
失敗
runなし 404
Git transportには存在し、GitHubのアプリケーション層から参照できない。
21


# Page. 22

![Page Image](https://bcdn.docswell.com/page/PEXQY9K1JX.jpg)

50 MBを超えるとpushできない
52,428,800 B
52,428,801 B
pack 152,841 B
pack 152,841 B
push成功
push拒否
non-blob object size limit exceeded
22


# Page. 23

![Page Image](https://bcdn.docswell.com/page/3EK93P5MED.jpg)

GitHubの各境界を整理する
対象
境界
結果
Git push
raw 50 MB
拒否
REST Git Commit API raw 10 MB
404 または 422
Web UI
message 65,535 B / raw 10 MB 本文切り詰め / commitページ404
Actions push event raw 10 MB / message 65,535 B runなし / 65,535 Bまで保持、超過で … 付き65,538 B
Webhook
payload 25 MB
公式が説明する上限（未計測）
23


# Page. 24

![Page Image](https://bcdn.docswell.com/page/L73WGXK275.jpg)

他のサービス
こちらは実際に検証したわけではないです
service
GitHub
GitLab
Bitbucket
Cloud
Codeberg
保存・push
表示・API
event / webhook
raw 50 MB + 1 B detailは65,536 Bから切り詰め。raw Actions messageは65,536 Bから切
で拒否
10 MB + 1 BでREST/UI不可
り詰め / Webhookは 25 MB
messageは任意 title 1 KB、description 1 MB
25 MB
長
不明
不明
256 KB
不明
不明
不明
ここを調べる時間が取れませんでした……（謝罪）
24


# Page. 25

![Page Image](https://bcdn.docswell.com/page/87DK1236JG.jpg)

様々な限界
50,000文字 / 3,000行 JetBrainsの表示上限
65,535 bytes Actions push eventが完全に保持するmessageの上限
10 MB raw GitHubアプリケーション層の境界
50 MB raw GitHub transportの境界
2 GB超 Git 2.55.0で保存できた範囲
25


# Page. 26

![Page Image](https://bcdn.docswell.com/page/VJPKQ1PZE8.jpg)

実運用でどこまで攻めるか
自分で書く文には 10 MB までいけそう
Actions？ その環境で日本語20,000文字いります？
安全側に倒すなら日本語20,000〜30,000文字くらいか
というわけで、 plan のサイズ（文字数）が相当じゃなければ全然イケる
ちなみに自分の plan は120,000文字とかのものもあって、commit message に
入れると GitHub や JetBrains には切り捨てられそう
26


