有没有办法从 Git diff 中删除版本号变更的噪音,类似于 这个 这样的差异?具体来说,如果一行只包含从一个数字到另一个数字的更改,我可以设置 Git diff 忽略它吗?
git-diff --word-diff-regex=[^0-9]
来实现(查看 [^0-9] 的作用)。对于更复杂的模式,您需要更复杂的正则表达式,但是,除了递归,使用正则表达式可以实现任何事情。
来自Git - git-diff--word-diff-regex文档
--word-diff-regex=
使用<regex>来决定什么是一个单词,而不是将连续的非空格字符视为单词。如果没有启用,则也意味着
--word-diff
。每个非重叠匹配的<regex >被视为一个单词。在这些匹配之间的任何内容都被视为空白并且被忽略,以便找出差异。您可能需要在正则表达式末尾添加
|[^[:space:]]
以确保它匹配所有非空格字符。包含换行符的匹配被静默截断。例如,
--word-diff-regex=.
将把每个字符视为单词,并相应地按字符显示差异。正则表达式也可以通过diff驱动程序或配置选项进行设置,请参见gitattributes[5]或git-config[1]。显式给定将覆盖任何diff驱动程序或配置设置。Diff驱动程序会覆盖配置设置。
.
并从这个回答中添加了 -U0:https://dev59.com/dVwX5IYBdhLWcg3w-Thv 来删除上下文。最终我得到了这个命令:git diff -w -U0 --word-diff-regex=[^0-9\.]
。 - Steve Moser