回答:
--diff-filter
オプションは、両方で動作diff
し、ログ。
--diff-filter=M
差分出力をコンテンツの変更のみに制限する多くを使用します。
リネームしてコピーを検出し、差分出力でこれらを使用するには、使用することができる-M
と-C
一緒に、それぞれR
およびC
オプションへ--diff-filter
。
--diff-filter=!D
Also, these upper-case letters can be downcased to exclude. E.g. --diff-filter=ad excludes added and deleted paths.
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
追加された(A)、コピーされた(C)、削除された(D)、変更された(M)、名前が変更された(R)ファイルのタイプ(つまり、通常のファイル、シンボリックリンク、サブモジュールなど)が変更された(T)、統合されていない(U)、不明(X)、またはペアリングが解除されている(B)。フィルター文字の任意の組み合わせ(なしを含む)を使用できます。
*(All-or-none)を組み合わせに追加すると、比較で他の基準に一致するファイルがある場合、すべてのパスが選択されます。他の基準に一致するファイルがない場合、何も選択されません。
また、これらの大文字を除外して除外することもできます。例--diff-filter = adは、追加および削除されたパスを除外します。
例:追加、変更、変更されたファイルのみを表示し、削除されたファイルを除外する:
git diff --diff-filter=ACM
UPDATE:受け入れ答えチャールズ・ベイリーによっては正しいものです。目的の機能はすでにgitに組み込まれています。
この回答は、gitに組み込まれていないものについてのアイデアを提供する可能性があるため、ここには残しておきます。
git diff
新しいファイルと削除されたファイルをと比較して表示し/dev/null
ます。/dev/null
次の行を探して次のdiffまでフィルタリングして除外する何か(私はPerlを自分で使用します)を書くことはそれほど難しくないはずです。その後git diff ... | the-filter
。
名前を変更したファイルは別の問題です。私には(まだ)良い答えはありません。
... | less
、明示的に。)あなたが見て可能性があるless
の-E
か-F
(私のシステムで、それは私が出力を見ることはできませんが)オプション。
git log
すると、ファイルの追加や削除のみを行うコミットが完全に無視されます。