首页 > 解决方案 > 如何使用 git --word-diff 显示空格差异?

问题描述

为了说明问题:参见diff

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

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

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

注意:无济于事,因为空格差异未显示在输出中git diff --word-diff=porcelain

标签: gitdiffwhitespaceword-diff

解决方案


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

您可以使用正则表达式,通过使用以下内容将行划分为单词以及空白区域:

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

使用链接示例的略微调整版本,git diff --word-diff-regex=.可以看到问题:

在此处输入图像描述

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

在此处输入图像描述


推荐阅读