git diff `git merge-base master branch`..branch
マージベースは、branchから分岐したポイントmasterです。
Git diffはこのための特別な構文をサポートしています:
git diff master...branch
他のブランチを取得するため、サイドを入れ替えないでください。branchから分岐してから何が変わったかを知りたいのですがmaster、逆ではありません。
ゆるく関連:
..と...構文のセマンティクスは他のGitツールと同じではないことに注意してください。で指定した意味とは異なりますman gitrevisions。
引用man git-diff:
git diff [--options] <commit> <commit> [--] [<path>…]
これは、任意の2つの間の変更を表示するためのもの<commit>です。
git diff [--options] <commit>..<commit> [--] [<path>…]
これは前のフォームと同義です。一方<commit>を省略すると、HEAD代わりにを使用するのと同じ効果があります。
git diff [--options] <commit>...<commit> [--] [<path>…]
このフォームは<commit>、両方の共通の祖先から始まり、2番目までのブランチの変更を表示するためのもの<commit>です。「git diff A...B」は「」と同等git diff $(git-merge-base A B) Bです。のいずれかを省略できます<commit>。これは、HEAD代わりにを使用するのと同じ効果があります。
何かエキゾチックなことをしている場合に備えて、<commit>「..」表記を使用する最後の2つの形式を除いて、上記の説明のすべてがであることに注意してください<tree>。
スペルのより完全なリストについては、の<commit>「改訂の指定」セクションを参照してくださいgitrevisions[7]。ただし、「diff」は2つのエンドポイントを比較することであり、範囲ではありません。範囲の表記( " <commit>..<commit>"および " <commit>...<commit>")は、の「SPECIFYING RANGES」セクションで定義されている範囲を意味しませんgitrevisions[7]。
git diff master..branch。git diff master..ブランチにいる場合は、に短縮できます。r1..r2以下のための構文は短く、^r1 r2手段は「から下降することを私にすべてを示しているr2とはから到達可能ではありませんr1」。git help gitrevisions使用できるさまざまな構文についての情報があります。