git - 如何使用 git --word-diff 显示空格差异?
问题描述
为了说明问题:参见diff
本段中唯一的差异(从A macro that needs
空格差异开始(在某些地方插入/删除换行符);
- 运行时
git diff
,前面的段落以红色显示,后面的段落以红色显示,很难发现差异 - 运行时
git diff --word-diff
,后面的段落以灰色显示,不显示空白变化 - 运行时
git diff --word-diff-regex=.
它会显示空白更改(太棒了!)但是[编辑]它会逐个字符地进行差异,这通常是不可读的,因为它混合了来自不同单词的字母以最小化差异,例如:git show --word-diff-regex=. 4a720394bba39ce1e67d518b909cbb1c25f63d09
[- * patch compile-]r [-so `isM-]a[-inModule`-] [-is true when -d:isMainModuleIsAlwaysTr-]{+m+}u[-e-] [- T-]{+c+}h[-at'll give speedup-] be[-nefi-]t[-, and we don'-]t[- hav-]e{+r+} [-to p-]{+w+}a[-tch stdlib files-]{+y+}. ]#
我想要的是在运行时显示空白差异的选项--word-diff
(或--word-diff-regex),例如通过{+ +}
and [- -]
; 注意: for--word-diff=color
最好将这些显示给,例如,也可以通过{+ +}
and显示,[- -]
否则这些会消失。
注意:我在我的 gitconfig 中使用颜色。
注意:这无济于事,因为空格差异未显示在输出中git diff --word-diff=porcelain
解决方案
该--word-diff-regex
命令允许您指定正则表达式来自定义--word-diff
行为。使用句号 ( .
) 的常见示例将给出逐个字符的匹配,因为句号正则表达式匹配任何字符。当未指定正则表达式时,默认值因文件类型而异,但通常会忽略空格更改,同时也将它们用作单词边界。
您可以使用正则表达式,通过使用以下内容将行划分为单词以及空白区域:
git diff --word-diff-regex="[ ]+|[^ ]+"
使用链接示例的略微调整版本,git diff --word-diff-regex=.
可以看到问题:
虽然git diff --word-diff-regex="[ ]+|[^ ]+"
会给你:
推荐阅读
- html - 打印时在 HTML 表中添加奇数行
- spring-boot - 具有 JWT 授权和 Angular 6 登录的 Spring Security
- python - 在 Gurobi /python 界面中修复的代码问题
- javascript - 反应刷新页面
- typescript - 如何使用打字稿将我的数组动态加载到我的大型菜单的列中?
- html - col-8 bootstrap 内的行背景全宽
- android - Android minifyEnabled true 导致应用程序崩溃
- python - ImportError:无法从“gym.wrappers”导入名称“SkipWrapper”
- json - 如何写入 JSON 文件而不删除其中的所有内容?
- django - 更改覆盖的 Django 视图返回 URL