Filter git diff by type of change
As Git 2.10 (Q3 2016) will remind us, there is an easier way to "show everything except added/deleted files." (actually since Git 1.8.5, July 2013)
git diff --diff-filter=ad master..
See commit 16726cf (14 Jul 2016) by Junio C Hamano (gitster
).
(Merged by Junio C Hamano -- gitster
-- in commit 2f8c654, 08 Aug 2016)
diff
: documentdiff-filter
exclusion
In v1.8.5 days, 7f2ea5f (
diff
: allow lowercase letter to specify what change class to exclude, 2013-07-17) taught the "--diff-filter
" mechanism to take lowercase letters as exclusion, but we forgot to document it.
So the documentation on diff-options
now (finally) includes:
These upper-case letters can be downcased to exclude.
E.g.--diff-filter=ad
excludes added and deleted paths.
Make sure to use Git 2.36 (Q2 2022).
You are looking for --diff-filter=M
to show only files *M*odified between the two branches.
From man git-diff
--diff-filter=[ACDMRTUXB*]
Select only files that are
A
AddedC
CopiedD
DeletedM
ModifiedR
RenamedT
have their type (mode) changedU
UnmergedX
UnknownB
have had their pairing Broken*
All-or-noneAny combination of the filter characters may 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.