How to make git-diff and git log ignore new and deleted files?
The --diff-filter
option works with both diff
and log.
I use --diff-filter=M
a lot which restricts diff outputs to only content modifications.
To detect renames and copies and use these in the diff output, you can use -M
and -C
respectively, together with the R
and C
options to --diff-filter
.
Official document:
--diff-filter=[(A|C|D|M|R|T|U|X|B)…[*]]
Select only files that are Added (A), Copied (C), Deleted (D), Modified (M), Renamed (R), have their type (i.e. regular file, symlink, submodule, …) changed (T), are Unmerged (U), are Unknown (X), or have had their pairing Broken (B). Any combination of the filter characters (including none) can be used.
When * (All-or-none) is added to the combination, all paths are selected if there is any file that matches other criteria in the comparison; if there is no file that matches other criteria, nothing is selected.
Also, these upper-case letters can be downcased to exclude. E.g. --diff-filter=ad excludes added and deleted paths.
Example: show only added , changed, modified files exclude deleted files:
git diff --diff-filter=ACM