私はさまざまなSO git diff
およびgitリビジョン(HEAD、ORIG_HEAD、FETCH_HEADなど)と、ローカルブランチの開始以降、または最後のリベース以降に行われた変更を一覧表示する簡単な方法がまだ見つかりません。
簡単コミットを検索して貼り付ける必要がないことを意味しますSHAまたは、振り返りたいコミットの数を数える必要はありません。
git diff Origin/master
は近いですが、新しいブランチをチェックアウトしてから分岐したリモートを指します。
私はgit diff BASE_HEAD
が利用可能になります。
...既にそれを行う方法がない限り。誰にも答えがありますか?
つかいます git diff @{u}...HEAD
、3つのドット。
2つのドットがある場合、またはHEAD
が省略されている場合、両側の変更による差分が表示されます。
3つのドットで、あなたの側の変更からの差分のみを表示します。
編集:ニーズがわずかに異なる人には、git merge-base
(他の回答が使用するよりも多くのオプションがあることに注意してください)。
git merge-base
を使用して、分岐点を見つけることができます。 master
がメインラインであり、dev
が履歴に関心があるブランチを検討してください。dev
がmaster
から分岐したポイントを見つけるには、次を実行します。
git merge-base --fork-point master dev
これでdev
をこの基準と比較できます:
git diff $(git merge-base --fork-point master dev)..dev
dev
がcurrentブランチの場合、これは次のように単純化されます:
git diff $(git merge-base --fork-point master)
詳細については、 git-merge-base
documentation を参照してください。
以下を使用して、ブランチの開始点から現在のブランチを比較できます。
git diff (start point)...
(開始点)はブランチ名、コミットID、またはタグです。
たとえば、develop
から分岐した機能ブランチで作業している場合、次を使用できます。
git diff develop...
分岐点以降の現在の分岐のすべての変更に対して。
これはすでにコメントで言及されていますが、回答状況に値すると思います。前回のリベース以来、それが何をするのか分かりません。
差分については、3ドット表記が必要です。ブランチがdev
と呼ばれ、master
から分岐した場合:
% git diff master...dev
ログの場合、2ドット表記が必要です。
% git log master..dev
リビジョン構文r1..r2
(2つのドット付き)は、「r2
から到達可能なすべて(包括的)であるが、r1
から到達不可能(包括的)」を意味します。これを使用する通常の方法は、r1
およびr2
を一連のコミットの範囲(r1
排他的、r2
包括的)を指定していると考えることです。 10リビジョン、3..7
は変更4、5、6、7を表示します。{1, 2, 3, 4, 5, 6, 7}
マイナス{1, 2, 3}
です。ただし、r1
は必ずしもr2
の祖先である必要はありません。 r1
はr1
からの祖先全体を逆方向に表し、r2
はr2
からの祖先全体を逆方向に表す集合演算のように考えてください。 2番目のセットからの最初のセット。
それで:
git log master..dev
ブランチの全履歴からマスターの全履歴を引いたものです。つまり、ブランチだけです。
リモートマスターブランチと比較するには:
git diff $(git merge-base HEAD Origin/master)..