2011-08-04 10 views
14

git diffを使用して2つのコミット間で差分を取得する方法はありますか?両方のコミットに存在するファイルの差分のみを表示しますか?git diff:両方のコミットに存在するファイルに対してdiffのみを表示

私は数週間前に作成した支店を持っています。私たちのメインコードは、これまでにかなり分かれています。その結果、現在のHEADと古いブランチの先端との間に差異がある場合は、変更されたファイルが数十件ありますが、それはほとんどノイズだけです。

実際に見たいのは、両方のブランチに存在するファイルのみを表示するdiffです。私はこれを行う一つの方法は、現在のHEADの上に他のブランチのコミットをチェリーピックすることですが、git diffを使ってそれを行う方法はありますか?

+0

@manojldsが間違っています。コミットはリポジトリの内容のスナップショットではありません。コミットは、リポジトリの内容の変更の記録です。コミットAに存在しなかったコミットBに新しいファイルが存在する可能性があります。 – andho

答えて

21

以下は、あなたが望むことをしていますか? --diff-filterからMオプションは2つのだけのコミットの間で変更することが表示されるファイルを含めるように述べてい

git diff --diff-filter=M commitA commitB 

- 1つの分岐のみ、または他に存在するものはAで選択されることになる(「追加」)またはD( 「削除されました」)。

次の操作を行うことにより、これらの文字コードで選択されるであろうファイルを見ることができます。

git diff --name-status commitA commitB 

を...とgit diff documentationでそのすべての詳細があります。

+0

ありがとう、これは参考になります。私が本当に欲しいのは、異なるファイル(まだ多くのファイル)ですが、古いブランチで修正されたファイルのみの差分です。 –

+0

あるいは、別の言い方をすれば、新しいブランチの上に古いブランチをパッチとして適用した場合、どのような変更が起こるか本当に知りたいです。それはそれを元に戻すのは簡単なので、私がやるべきことかもしれません。 –

+0

@Kyralessa:これは良い質問です(そして、私は願っています、答え:))。それについて質問するために新しい質問を作成することをお勧めします。 –

関連する問題