如何使用 git --word-diff 显示空格差异?

how to show whitespace differences with git --word-diff?

为了说明问题:参见diff

本段中唯一的差异(从 A macro that needs 开始的是空格差异(在某些地方插入/删除了换行符);

我想要的是在 运行 --word-diff(或 --word-diff-regex)时显示空格差异的选项,例如通过 {+ +}[- -] ;注意:--word-diff=color 最好将这些显示给,例如也可以通过 {+ +}[- -],否则这些将消失。

注意:我在我的 gitconfig 中使用了颜色。

注意:this 没有帮助,因为 git diff --word-diff=porcelain

的输出中没有显示空白差异

--word-diff-regex 命令允许您指定一个正则表达式来自定义 --word-diff 行为。使用句号 (.) 的常见示例将给出逐字符匹配,因为句号正则表达式匹配任何字符。当未指定正则表达式时,默认值因文件类型而异,但通常会忽略 whitespace 更改,同时也将它们用作单词边界。

您可以使用正则表达式将行划分为单词以及白色 space 区域,方法如下:

git diff --word-diff-regex="[ ]+|[^ ]+"

通过稍微调整您的链接示例的版本,可以看到 git diff --word-diff-regex=. 的问题:

虽然 git diff --word-diff-regex="[ ]+|[^ ]+" 会给你:

https://github.com/so-fancy/diff-so-fancy or https://coderwall.com/p/nl-bdg/more-readable-git-word-diff-on-osx 实际上可能是更好的方法,它显示了类似 github 的差异,其中显示了更多上下文,但也突出了实际更改的部分。