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>…]
Це для перегляду змін між двома довільними <commit>.
git diff [--options] <commit>..<commit> [--] [<path>…]
Це синонім попередньої форми. Якщо <commit>з одного боку пропущено, це матиме такий же ефект, як і використання HEADзамість цього.
git diff [--options] <commit>...<commit> [--] [<path>…]
Ця форма призначена для перегляду змін на гілці, що містить і до другої <commit>, починаючи від спільного предка обох <commit>. " git diff A...B" еквівалентно " git diff $(git-merge-base A B) B". Ви можете опустити будь-який із них <commit>, який має такий же ефект, як і використанняHEAD .
Про всяк випадок, якщо ви робите щось екзотичне, слід зазначити, що все <commit> наведені вище описи, крім двох останніх форм, що використовують позначення "..", можуть бути будь-якими <tree>.
Для більш повного списку способів роз'яснюються <commit>, дивіться розділ «Налаштування редагування» в gitrevisions[7]. Однак "diff" - це порівняння двох кінцевих точок, а не діапазонів, і позначення діапазону (" <commit>..<commit>" і " <commit>...<commit>") не означають діапазон, визначений у розділі "СПЕЦІФІКАЦІЙНІ РЕГІНИ" в gitrevisions[7].
git diff master..branch. Ви можете скоротити його,git diff master..якщо ви на гілці.r1..r2Синтаксис є абревіатурою ,^r1 r2що означає «показати мені все , що відбувається відr2і не досяжна зr1».git help gitrevisionsмістить інформацію про різні синтаксиси, які ви можете використовувати.