git diff --color-words如何仅高亮字符变更而非空格分隔的单词组?
解决方案
直接使用指定单字符匹配规则的diff命令即可:git diff --color-words --word-diff-regex=.
原理说明
--word-diff-regex 参数可以自定义差异识别的「单词」分割规则,设置为.时会将每个单个字符都识别为独立的对比单元,就不会再按空格分组高亮未变更的整段内容,只会精准标记发生变化的单个字符。对你示例中的场景,只会高亮版本号的40、41部分,其余内容不会被高亮。
永久配置(可选)
如果需要长期对比这类无空格的压缩代码,可以针对特定文件类型配置默认规则,不需要每次都手动加参数:
- 编辑全局git配置文件
~/.gitconfig(Windows系统为C:\Users\你的用户名\.gitconfig),添加如下内容:[diff "singlechar"] wordRegex = . - 在对应项目的
.gitattributes文件中添加配置,指定对应后缀的文件使用该规则:*.js diff=singlechar *.min.css diff=singlechar
配置完成后,后续直接执行git diff --color-words针对上述后缀的文件就会默认按单字符识别差异。
内容的提问来源于stack exchange,提问作者Tallboy
相关产品推荐
相关产品推荐

