GitHub:プルリクで画像や文書の差分が見た目で出ない
GitHub は PNG・JPG・GIF・PSD・SVG などのよく使う画像の形式を表示し、版どうしの違いを比べられます。文書を含むコミットやプルリクは、その文書をソースと表示の2通りで見せられます(GitHub のコード以外のファイルの扱い・2026年10月28日に確認)。ただし、この見た目の差分から外れるファイルや変更があります。
GitHub が見せる物
- 画像:2つの版を3つのモードで比べます。2-up が既定で、両方の画像を並べます。画像の大きさが変わっていれば、寸法の変化も出ます。スワイプはスライダーで画像の一部ずつを並べて見せ、オニオンスキンは不透明度のスライダーで、少しだけ動いた要素を見つけやすくします(画像の表示と差分)。
- 文書:ソースの表示は入力したままの文字を、表示(rendered)は GitHub で描いたときの見た目を出します。この「rich diff」は足した所と消した所を色で示します。表示の差分があるのは github/markup が扱う形式で、Markdown・AsciiDoc・Textile・ReStructuredText・Rdoc・Org・Creole・MediaWiki・Pod です(文書の表示の差分)。
- 属性:リンクの URL のように、描いた文書では見えない変更は、ツールチップで説明します。
出ない理由
- PSD のファイル:GitHub は PSD どうしの違いを比べません。
- Firefox の SVG:Firefox では GitHub の SVG が描かれないことがあります。SVG の中のスクリプトやアニメーションも動きません。
- 複雑な文書:大きく複雑な文書の変更の解析に時間がかかりすぎると、GitHub は表示の差分を作れないことがあり、表示のボタンを押すとエラーのメッセージが出ます(複雑な差分を見る)。
- HTML の文書:HTML の文書へのコミットは、表示の差分を直接は出しません。Markdown のように HTML を埋め込める形式では、埋め込んだ HTML の一部は出ますが、埋め込んだ YouTube の動画のように出ない物もあります。
- 表示に変えるファイルが多すぎる:1つの差分で見せるのは、画像・PDF・GeoJSON のように表示に変えるファイル25個までです(ファイルの差分が出ないを参照)。
- 表にならない CSV・TSV:ファイルを見ると、元の文字の上にエラーの見当を示すメッセージが出ます。よくある原因は、列の数が合わない(空のセルがあっても、どの行も区切り文字の数を同じにする)、512 KB を超えるファイル、カンマの代わりにセミコロンのような扱えない区切り文字です(CSV と TSV の表示)。
どうするか
- ソースの表示を使う:複雑な差分で表示の差分が出なくても、ソースの表示で変更を読み、コメントできます。コメントはソースの表示で、行ごとに付けます。
- 両方の表示を見る:HTML を埋め込んだ文書の変更は、表示とソースの両方で見るよう GitHub は勧めています。
- Markdown のソースを見る:Markdown のファイルを見ているときは、ファイルの上の Code を押すと描画が切れてソースが出ます。ソースの表示では行へのリンクが使えます。
- CSV を直す:どの行も区切り文字の数をそろえ、カンマで区切り、512 KB 未満にします。
IntelliJ IDEA は画像を画像のエディタで開き、文書は文字で比べる
IntelliJ IDEA に入っている GitHub の機能が、プルリクで変わった画像や文書をどう見せるか。ソース(2026年10月31日に確認・IntelliJ IDEA:GHPRDiffChangeViewModel.kt・ChangeDiffRequestProducer.java・DiffContentFactoryImpl.java・BinaryEditorHolder.java・images plugin.xml・SvgFileType.java)では:
- ふだんの変更と同じ diff:ファイルは、IDE がバージョン管理の変更ならどれにも使う diff で開き、両方の版を git から読みます(ファイルの一覧と取り方はファイルの差分が出ない)。
- 画像:バイナリの型のファイルは文字で比べず、左右それぞれを、そのファイルに IDE が持っている最初のエディタで開きます。Image の型なら画像のエディタです。この型には png・jpg・gif・bmp・tiff・psd などの拡張子が入っています。SVG も同じで、ソースがバイナリとして見せる型なので、XML の文字ではなく画像で開きます。その型のエディタが IDE に無いときは、その側に代わりのメッセージが出ます。
- 文書:Markdown などの文字のファイルは、GitHub のソースの表示と同じく文字で比べます。
IntelliJ IDEA で GitHub のプルリクを見るなら
Lesstep の Pull Request Inbox for GitHub は、JetBrains IDE(2024.1 以降)のプラグインです。プルリクのレビュー・チェック・会話を差分の隣に並べ、対象のブランチが許す方法でマージします。変更されたファイルは、マージベースと head のコミットのファイルを GitHub から読み、IDE の差分に開きます。画像などテキストでないファイルは文字としてではなくファイルとして開くので、IDE がその種類の表示で見せます(画像は画像として)。受信箱・差分・会話は無料、承認・コメント・解決・マージは 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 のプルリクでファイルの差分が出ない · GitHub でフォークのプルリクのブランチに push できない · GitHub のプルリクのチェックが取り消された · GitHub で Rebase and merge が使えない · GitHub のマージのコミットメッセージが思った形にならない · GitHub のプルリクでファイルの全行が変わったと出る · GitHub の API がタイムアウトした · GitHub のレビューの依頼が断られる(422) · GitHub で Copilot が作ったプルリクのチェックが動かない・承認が数えられない · GitHub の push が GH006・GH013 で断られる · GitHub で承認が足りずマージできない・数に入らない承認 · JetBrains の IDE で GitHub のプルリクを扱う · English