GitHub:プルリクでファイルの差分が出ない
GitHub は、コミット・プルリク・比較の画面で見せる差分に上限を設けています。上限にかかった差分は一部だけ出ることがあり、上限を超えた分は出ません(GitHub の 差分の上限・2026年10月27日に確認)。生成ファイルの印が付いたファイルも、差分では既定で隠れます。
差分の上限
- 1つのファイル:ファイルの差分は400行・20 KB まで自動で読み込まれます。1つのファイルの差分は、読み込める20,000行、または生の差分で500 KB を超えられません。
- プルリク全体:差分の合計は、読み込める20,000行、または生の差分で1 MB を超えられません。
- ファイルの数:1つの差分に入るのは300ファイルまで、画像・PDF・GeoJSON のように表示に変えるファイルは25までです(画像や文書の見た目の差分は画像や文書の差分が見た目で出ないを参照)。
- API は別:REST API には別の上限があり、差分の全体で300ファイル、ファイルの一覧で3,000件です(差分が 406 になる)。
差分が隠れるほかの理由
- 生成ファイル:
.gitattributesでlinguist-generatedの属性を付けたファイルは、差分では既定で隠れ、リポジトリの言語の集計からも外れます(GitHub の 変わったファイルの見え方を変える)。 - 空白:Files changed のタブでは、空白の違いを隠せます。この選択はそのプルリクだけに効き、次に開いたときも覚えています(GitHub の レビューを始める)。
- ファイルの絞り込み:レビューしたいファイルだけを出すように絞り込めるので、絞り込みでファイルがタブから外れることがあります。
- 見た印:見た印を付けたファイルは畳まれ、また変わると印が外れます(見た印が消える)。
どうするか
- 長いファイル:ページで残りの差分を読み込みます。20,000行・500 KB までです。
- 上限を超えた分:GitHub は出しません。クローンで
git diffを使ってブランチを比べます(差分が 406 になるに手順)。 - 生成ファイルとして扱われたくないファイル:
.gitattributesで印を外します。たとえばbootstrap.min.css -linguist-generated。印を付けるならsearch/index.json linguist-generatedです。このファイルのパターンは.gitignoreと同じ規則で当たります。 - 空白と絞り込み:Files changed のタブの差分の設定とファイルの絞り込みを確かめます。反対にファイルの全行が変わったと出るなら、改行コードへ。
IntelliJ IDEA はファイルの一覧を GitHub から、差分を取ってきたコミットから作る
IntelliJ IDEA に入っている GitHub の機能が、プルリクで変わったファイルをどう並べて見せるか。ソース(2026年10月31日に確認・IntelliJ IDEA:GHPRChangesServiceImpl.kt・GHPRChangesDataProviderImpl.kt・GithubApiRequests.kt・GitBranchComparisonResult.kt・GitBranchComparisonResultImpl.kt)では:
- ファイルの一覧:GitHub の REST のプルリクのファイルの一覧(
GET /repos/OWNER/REPO/pulls/NUMBER/files)を、次のページが無くなるまで読みます。なので、この一覧についての GitHub の上限(上に書いた 3,000 ファイル)はそのまま効きます。コミットごとのファイルはGET /repos/OWNER/REPO/commits/SHAから取ります。 - 差分:差分を出す前に、マージ先のコミットと
refs/pull/NUMBER/headが手元のリポジトリに無ければ fetch します。ファイルごとの差分は、マージベース(GitHub の compare で求める)のファイル全体と、先頭のコミットのファイル全体を git から読んで比べます。GitHub がページで見せる部分からは作りません。 - patch の無いファイル:GitHub の一覧が
patchを付けずに返したファイルも、バイナリの変更として一覧に残り、同じように git から比べます。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。GitHub が渡す変更ファイルを3,000件まで並べ、それぞれをターゲットのブランチとのマージベースと先頭のコミットでファイル全体を読んで IDE の差分で開き、レビュー・チェック・会話を隣に並べます。.gitattributes は読まないので、生成ファイルの印が付いたファイルもほかと同じく並べて開きます。受信箱・差分・会話は無料、承認・コメント・解決・マージは Pro(月 US$1.50・30日間の無料試用つき)です。画面は日本語です。
GitHub は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。
ほかに:GitHub のマージの断り(405・409) · GitHub のレビューの断り(422) · GitHub の検索の 422「Validation Failed」 · 「Resource not accessible by personal access token」 · 401「Bad credentials」 · 「Resource protected by organization SAML enforcement」 · 「API rate limit exceeded」 · GitHub の差分の 406「too_large」・3,000件 · GitHub の行のコメントの 422「must be part of the diff」 · GitHub のブランチの更新の断り(422) · GitHub のプルリクが作れない(422・403) · GitHub の自動マージの断り · GitHub の下書き・レビュー準備完了・閉じるの断り · GitHub の会話の解決の断り · GitHub のチェックが出ない(check runs の 403) · GitHub のファイルの中身が読めない · GitHub の比較の断り(404・422) · GitHub のコメント・返信の断り(ロック・アーカイブの 403) · GitHub のマージの方法の断り(405) · GitHub のブランチが見つからない(404・301) · GitHub Enterprise Server につながらない · GitHub のレビューの依頼が出ない · GitHub のプルリクの一覧が足りない · GitHub の 404・名前を変えたリポジトリ(301・307) · GitHub の行のコメントが outdated・差分に無い · GitHub のプルリクの更新・通知が遅い · GitHub の変更の提案が適用できない · GitHub の必須チェックが Expected のまま · GitHub でコードオーナーのレビューが要る · GitHub で未解決の会話がマージを止める · GitHub で署名の無いコミットがマージを止める · GitHub のマージキューでマージするブランチ · GitHub でマージが最後の push の承認を待っている · GitHub でマージがコードスキャンの結果を待っている · GitHub でマージがコード品質の結果を待っている · GitHub でコードのカバレッジの水準がマージを止める · GitHub でライセンスの適合の結果がマージを止める · GitHub でブランチのロックや更新の制限がマージを止める · GitHub でマージの後にブランチが消えない · GitHub でチームの承認(Required reviewers)がマージを止める · GitHub でシークレットスキャンのアラートがマージを止める · GitHub でスタックしたプルリクがマージできない · GitHub で push の規則が push を止める · GitHub でコミットのメタデータの規則がマージを止める · GitHub で強制 push が止められる · GitHub でプルリクをマージしても issue が閉じない · GitHub のプルリクを手元にチェックアウトできない · GitHub のプルリクがマージ先と衝突している · GitHub で変更を依頼された・レビューを取り消す · GitHub で共同作者がコミットに数えられない · GitHub で依存関係のレビューのチェックが失敗する · GitHub で Dependabot がプルリクをリベースしない · GitHub でフォークが同期できない · GitHub でプルリクのベースのブランチを変えられない · GitHub でプルリクを取り消せない · GitHub でプルリクのテンプレートが出ない · GitHub でプルリクにラベルや担当者が付かない · GitHub でプルリクを閉じられない・開き直せない · GitHub でプッシュ保護にプッシュを止められた · GitHub でプルリクのコメントが隠された · GitHub でデプロイが成功するまでプルリクをマージできない · GitHub でチームに頼んだレビューがメンバーに置き換わった · GitHub でプルリクのファイルの Viewed が外れた · GitHub でマージしていないプルリクがマージ済みになった · GitHub で Copilot のレビューが承認に数えられない · GitHub でワークフローが作ったプルリクのチェックが動かない · GitHub でプルリクに Update branch のボタンが出ない · GitHub で Dependabot のプルリクのチェックが失敗する · GitHub でフォークからのプルリクのチェックが失敗する · GitHub でコミットメッセージの [skip ci] でチェックが動かない · GitHub で保存期間を過ぎてチェックが消えた · GitHub の公開リポジトリのコードレビューの制限 · GitHub でリポジトリのプルリクがオフ・制限されている · GitHub でスタックのプルリクごとにチェックが走る · GitHub でスカッシュでマージ済みのコミットが次のプルリクに出る · GitHub でフォークのプルリクのブランチに push できない · GitHub のプルリクのチェックが取り消された · GitHub で Rebase and merge が使えない · GitHub のマージのコミットメッセージが思った形にならない · GitHub のプルリクでファイルの全行が変わったと出る · GitHub の API がタイムアウトした · GitHub のプルリクで画像や文書の差分が見た目で出ない · GitHub のレビューの依頼が断られる(422) · GitHub で Copilot が作ったプルリクのチェックが動かない・承認が数えられない · GitHub の push が GH006・GH013 で断られる · GitHub で承認が足りずマージできない・数に入らない承認 · JetBrains の IDE で GitHub のプルリクを扱う · English