Skip to main content
ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

プルリクエスト中でのブランチの比較について

プルリクエストは、変更のマージ対象のbaseブランチに対するトピックブランチ中で作成した変更を比較するdiffを表示します。

ノート:プルリクエストを作成する際には、変更の比較対象となるbaseブランチを変更できます。 詳しい情報についてはプルリクエストの作成を参照してください。

You can view proposed changes in a pull request in the Files changed tab. プルリクエストの変更されたファイルタブ

コミットそのものを見るよりは、プルリクエストがマージされた際に提案された変更がファイルに現れるのを見ることができます。 Files changed(変更されたファイル)タブ内では、ファイルはアルファベット順に表示されます。 ファイルへの追加は緑で表示され、先頭に+サインが付きます。削除されたコンテンツは赤で表示され、先頭に-サインが付きます。

diff 表示の選択肢

ヒント: 変更した理由を把握しづらい場合、[File changed] タブ中の [View] をクリックして、提案された変更中のファイル全体を表示させることができます。

diff の見方には複数の選択肢があります。

  • 統合ビューでは、更新分と既存の内容が線形ビューに一緒に表示されます。
  • 分割ビューでは、古い内容が片側に、新しい内容が反対側に表示されます。
  • リッチ diff ビューでは、プルリクエストがマージされたときに変更がどのように見えるかのプレビューが表示されます。
  • ソースビューでは、ソース内の変更がリッチ diff ビューのフォーマットなしで表示されます。

プルリクエスト中の大きな変更をもっと正確に表示するために、空白の変更を無視するよう選択することもできます。

Diff の表示のオプションメニュー

大規模なプルリクエスト中の変更のレビューを簡素化するために、選択されたファイルタイプだけを表示、CODEOWNERS であるファイルを表示、表示したことのあるファイルを非表示、または削除されたファイルを非表示にするように diff をフィルタリングできます。 詳しい情報については、「プルリクエスト内のファイルをファイルタイプでフィルタリングする」を参照してください。

ファイルフィルタのドロップダウンメニュー

diffが表示されない理由

スリードットおよびツードット Git diff での比較

There are two comparison methods for the git diff command; two-dot (git diff A..B) and three-dot (git diff A...B). By default, pull requests on GitHub show a three-dot diff.

Three-dot Git diff comparison

The three-dot comparison shows the difference between the latest common commit of both branches (merge base) and the most recent version of the topic branch.

Two-dot Git diff comparison

The two-dot comparison shows the difference between the latest state of the base branch (for example, main) and the most recent version of the topic branch.

GitHub 上で、ツードット diff を比較する際に 2 つの committish のリファレンスを見たい場合には、リポジトリの [Comparing changes] ページの URL を編集できます。 詳しい情報については Pro Git ブックサイトの Git 用語集の "committish" を参照してください。

たとえば、以下のURLは短縮された7文字のSHAコードを使ってc3a414efaf7c6fのコミットを比較しています。 https://github.com/github/linguist/compare/c3a414e..faf7c6f..

ツードット diff は SHA あるいは OID (Object ID) など、2 つの Git の committish 参照を直接互いに比較します。 GitHub では、ツードット diff での比較中の Git の committish 参照は、同じリポジトリあるいはそのフォークにプッシュされなければなりません。

プルリクエスト中でツードット diff をシミュレートし、各ブランチの最新バージョン同士の比較を見たい場合には、ベースブランチをトピックブランチにマージできます。そうすれば、ブランチ間の最後の共通の祖先が更新されます。

変更を比較するための Git コマンドに関する詳しい情報については、Pro Git ブックサイトの「Git diff のオプション」を参照してください。

About three-dot comparison on GitHub

Since the three-dot comparison compares with the merge base, it is focusing on "what a pull request introduces".

When you use a two-dot comparison, the diff changes when the base branch is updated, even if you haven't made any changes to the topic branch. Additionally, a two-dot comparison focuses on the base branch. This means that anything you add is displayed as missing from the base branch, as if it was a deletion, and vice versa. As a result, the changes the topic branch introduces become ambiguous.

In contrast, by comparing the branches using the three-dot comparison, changes in the topic branch are always in the diff if the base branch is updated, because the diff shows all of the changes since the branches diverged.

Merging often

To avoid getting confused, merge the base branch (for example, main) into your topic branch frequently. By merging the base branch, the diffs shown by two-dot and three-dot comparisons are the same. We recommend merging a pull request as soon as possible. This encourages contributors to make pull requests smaller, which is recommended in general.

参考リンク