GitHub:比較が断られた理由
2つのコミットは GET /repos/持ち主/リポジトリ名/compare/BASE...HEAD で比べます。プルリクの Files changed と同じ、点3つの比較です。ファイルはマージベース(両方が持ついちばん新しいコミット)から head まで、コミットは git log BASE..HEAD の分が返ります。同じリポジトリのネットワークにあるフォークのブランチやコミットとも比べられ、フォークのブランチは ユーザー名:ブランチ と書きます。GitHub の文書が挙げる答えは 200・404・422・500・503 です(2026年10月25日に確認)。
{"message": "No common ancestor between 03f7ef390fef7f30111e6a5bafc345f4389cbea8 and 5b4d124ec29c81900f0c34a89c7de23405dbd791."}
Server Error: Sorry, this diff is taking too long to generate. (HTTP 422)
GitHub の文と理由
No common ancestor between … and ….(2022年の公開の報告では 404):2つのコミットに共通の履歴が無く、比べ始めるマージベースがありません。たとえば、片方のブランチが親のコミット無しで始まっています。- その文の無い 404:このリポジトリにもそのネットワークにも無いブランチやコミット(消した・push していない・綴りの違い)か、リポジトリがこのトークンからは見えません。トークンで見えない非公開のリポジトリにも、GitHub はこう答えます。
Sorry, this diff is taking too long to generate.:GitHub が時間内に比較を作れませんでした。公開の報告では、2026年の GitHub.com で 422(per_page=1でも)、2020年の GitHub Enterprise Server で 500 でした。1件では CI が3回試して失敗し、報告を書いた時点でも同じ比較が同じ断りでした。GitHub が10秒で打ち切る呼び出しは、API がタイムアウトしたを参照。- 500 と 503 も GitHub の一覧にあります(サーバーの中の失敗・使えない状態)。
断りなしに比較を切る上限
- 250 コミット:
per_pageもpageも付けないと、コミットの一覧は 250 件で止まります。最後の1件は、比較ぜんたいでいちばん新しいコミットです。 - 300 ファイル:ページに分けると、変わったファイルは最初のページだけに、比較ぜんたいで 300 件まで出ます。
per_pageは 100 コミットまでです。 - プルリク自身の一覧(
GET /repos/持ち主/リポジトリ名/pulls/番号/files)はもっと先の 3,000 ファイルまで出ます(GitHub の差分の 406「too_large」へ)。
プルリクが持ち続けるマージ先のコミット
- GitHub の文書は、プルリクを開いたとき、GitHub はマージ先のブランチが指すコミットをそのプルリクの base にし、ブランチが先へ進んでもそのコミットを更新しないと書いています。
- そのコミットと head をじかに比べるのは、点2つの比較です。文書は、点2つの比較はトピックのブランチが変わらなくても、マージ先のブランチが更新されると変わると書いています。マージ先の新しいコミットを取り込んだブランチは、その変更を自分の変更として見せます。
- 文書は、プルリクのマージの後に head のブランチを消すと、そのブランチをマージ先にしていた開いたプルリクのマージ先を、GitHub がマージされたプルリクのマージ先に変えると書いています。
直し方
- 共通の履歴が無い:比べ始める所がありません。ブランチをマージ先のブランチにマージかリベースして、履歴を共有させます。
- 時間内に作れない:小さな区切りで比べるか、変わったファイルを git で読みます(
git diff --name-only BASE...HEAD)。公開の報告の1件は、ファイルの一覧を git から取る形を試しています。 - 250 コミット・300 ファイルを超える:コミットはページを送って読みます。ファイルはプルリクの一覧か git を使います。
- 404:2つのコミットがそのリポジトリかネットワークのフォークに push されているか、ブランチがまだあるか、トークンからリポジトリが見えるかを確かめます(足す権限へ)。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。マージ先のブランチとプルリクの head を比べて、差分の始まりにするマージベースと、マージ先に新しいコミットがあるか(「ブランチを更新」のリンクつきで出す)を知ります。GitHub がこの比較を断ったときは、差分をプルリクが持つマージ先のコミットから始め、そのことを「ファイル」のタブに書きます(プルリクを開いた後にマージ先から取り込んだ変更がプルリクの変更に見えることがあり、マージ先が先へ進んだかも分かりません)。前回見てから変わったファイルに印を付けるため、そのとき見た head と今の head を比べます。GitHub がこれを断ったとき、または 300 ファイル以上を返したときは、どのファイルが変わったか分からないので、そのプルリクの既読の印を消して「ファイル」のタブにそう書き、「前回見てから変更あり」も付けません。受信箱・差分・会話は無料、承認・コメント・マージは 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 のコメント・返信の断り(ロック・アーカイブの 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 のプルリクでファイルの差分が出ない · 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