I\'ve made a single simple change to a large number of files that are version controlled in git and I\'d like to be able to check that no other changes are slipping into thi
No more grep needed!
With Git 2.30 (Q1 2021), "git diff"(man) family of commands learned the "-I" option to ignore hunks whose changed lines all match the given pattern.
See commit 296d4a9, commit ec7967c (20 Oct 2020) by Michał Kępień (kempniu).
(Merged by Junio C Hamano -- gitster -- in commit 1ae0949, 02 Nov 2020)
diff: add
-Ithat ignores matching changesSigned-off-by: Michał Kępień
Add a new diff option that enables ignoring changes whose all lines (changed, removed, and added) match a given regular expression.
This is similar to the-I/--ignore-matching-linesoption in standalonediffutilities and can be used e.g. to ignore changes which only affect code comments or to look for unrelated changes in commits containing a large number of automatically applied modifications (e.g. a tree-wide string replacement).The difference between
-G/-Sand the new-Ioption is that the latter filters output on a per-change basis.Use the 'ignore' field of
xdchange_tfor marking a change as ignored or not.
Since the same field is used by--ignore-blank-lines, identical hunk emitting rules apply for--ignore-blank-linesand-I.
These two options can also be used together in the samegitinvocation (they are complementary to each other).Rename
xdl_mark_ignorable()toxdl_mark_ignorable_lines(), to indicate that it is logically a "sibling" ofxdl_mark_ignorable_regex()rather than its "parent".
diff-options now includes in its man page:
-I
--ignore-matching-lines=Ignore changes whose all lines match
.
This option may be specified more than once.
Examples:
git diff --ignore-blank-lines -I"ten.*e" -I"^[124-9]"