Git diff -w只在启动时忽略空白行尾

我喜欢使用git diff -w来忽略空白差异。但是,我刚刚注意到,它甚至忽略了行中间的空白差异。我怎么能只忽略行开头(^)或结尾($)的空白差异呢?

198539 次浏览

终端使用:

git diff --ignore-space-at-eol

而不是你目前使用的:

git diff -w (--ignore-all-space)

作为开始的线…如果你想要一个内置的解决方案,那你就不走运了。

然而,如果你不介意自己动手的话,在某个地方有一个相当老的补丁,它增加了对“——ignore-space-at-sol”的支持。

这是一个老问题,但仍然经常被看到/需要。我想发表文章提醒像我这样的读者,OP的问题中提到的空格是与Regex的定义相同的,包括换行符、制表符和空格字符——Git要求你显式。在这里查看一些选项:https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

如上所述,git diff -bgit diff --ignore-space-change将忽略行尾的空格。如果你希望这个设置是你的默认行为,下面这行代码会把这个意图添加到你的.gitconfig文件中,所以它总是忽略行尾的空格:

git config --global core.whitespace trailing-space

在我的例子中,我发现这个问题是因为我对忽略“回车空格差异”感兴趣,所以我需要这个:

< p > git diff --ignore-cr-at-eolgit config --global core.whitespace cr-at-eol from 在这里.

你也可以通过省略——global参数使它成为默认的只是为了那笔回购,并检查该repo的设置文件。对于我遇到的CR问题,如果.gitconfig文件[core]部分中的warncrlf或selflf = true签入后,它就会消失。