45

ローカルブランチに対していくつかのコミットを行いましたが、現在持っているものをブランチの開始状態と比較するための最良の方法がわかりません。ブランチに6つのコミットがあった場合のようなことができることは知っていますがgit diff HEAD HEAD~6、コミットの数に依存しない何かを望んでいました。

編集:私はこれについて言及しませんでした:私が分岐したコミットのハッシュを取得するためにログを掘り下げる必要がないことを望んでいました。たとえば、80のコミットがある場合、これは楽しい作業ではありません。

また、私が分岐した元のブランチにはすでにいくつかの変更が加えられていると想定します。

4

3 に答える 3

64

次のように説明されているトリプルドット構文を使用することをお勧めしますgit help diff

git diff otherbranch...

これは次と同じです:

git diff otherbranch...HEAD

これは次と同じです:

git diff $(git merge-base otherbranch HEAD) HEAD

このmerge-baseコマンドは、「最良の」(最新の)共通の祖先を出力するため、上記のコマンドは、toと共通している最新のコミットとの違いを示していHEADます。otherbranchHEAD

@{u}代わりにを使用しotherbranchて、アップストリームブランチから分岐してから行った変更を確認できることに注意してください。git help revisions構文の詳細については、を参照してください。

于 2011-06-17T21:38:52.900 に答える
0

まず、分岐したコミットを見つける必要があります。それができたら、git diff <branch-point>..HEAD(yasouserが指摘したように)簡単に実行できます。

于 2011-06-17T20:05:56.280 に答える
-1

git diff <SHA-1 of the commit from which you branched>..HEAD

を実行すると、分岐点のSHA-1を取得できますgit log

于 2011-06-17T20:01:46.463 に答える