如何使 Git diff 忽略版本号更改?
How do I make Git diff ignore version number changes?
有没有办法从 Git diff like this one 中消除版本号变化干扰?具体来说,如果一行只包含从一个数字到另一个数字的变化,我可以设置 Git diff 来忽略它吗?
我认为这可以使用 git-diff --word-diff-regex=[^0-9]
来实现(see [^0-9] in action). For a more complex pattern you'll need a more complex regex but, except recursion,使用正则表达式一切皆有可能。
来自 Git - git-diff --word-diff-regex documentation
--word-diff-regex=
Use < regex > to decide what a word is, instead of considering runs of
non-whitespace to be a word. Also implies --word-diff
unless it was
already enabled.
Every non-overlapping match of the < regex > is considered a word. Anything between these matches is considered whitespace and ignored(!)
for the purposes of finding differences. You may want to append
|[^[:space:]]
to your regular expression to make sure that it
matches all non-whitespace characters. A match that contains a newline
is silently truncated(!) at the newline.
For example, --word-diff-regex=.
will treat each character as a word
and, correspondingly, show differences character by character.
The regex can also be set via a diff driver or configuration option,
see gitattributes[5] or git-config[1]. Giving it
explicitly overrides any diff driver or configuration setting. Diff
drivers override configuration settings.
另见
有没有办法从 Git diff like this one 中消除版本号变化干扰?具体来说,如果一行只包含从一个数字到另一个数字的变化,我可以设置 Git diff 来忽略它吗?
我认为这可以使用 git-diff --word-diff-regex=[^0-9]
来实现(see [^0-9] in action). For a more complex pattern you'll need a more complex regex but, except recursion,使用正则表达式一切皆有可能。
来自 Git - git-diff --word-diff-regex documentation
--word-diff-regex=
Use < regex > to decide what a word is, instead of considering runs of non-whitespace to be a word. Also implies
--word-diff
unless it was already enabled.Every non-overlapping match of the < regex > is considered a word. Anything between these matches is considered whitespace and ignored(!) for the purposes of finding differences. You may want to append
|[^[:space:]]
to your regular expression to make sure that it matches all non-whitespace characters. A match that contains a newline is silently truncated(!) at the newline.For example,
--word-diff-regex=.
will treat each character as a word and, correspondingly, show differences character by character.The regex can also be set via a diff driver or configuration option, see gitattributes[5] or git-config[1]. Giving it explicitly overrides any diff driver or configuration setting. Diff drivers override configuration settings.