Git diff -w仅在行的开头和结尾忽略空格

ma1*_*w28 341 git diff whitespace ignore

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

Fak*_*hid 420

对于行尾使用:

git diff --ignore-space-at-eol
Run Code Online (Sandbox Code Playgroud)

而不是你目前使用的是什么:

git diff -w (--ignore-all-space)
Run Code Online (Sandbox Code Playgroud)

如果你想要一个内置的解决方案,那么你就不幸了!

但是,如果你不介意弄脏手,那里有一个相当古老的补丁浮出某处,增加了对"--ignore-space-at-sol"的支持.

  • 我同意-b建议,因为-w将"abc def"和"abcdef"视为相同,这很少是我想要的! (5认同)

小智 11

这是一个老问题,但仍然经常被查看/需要。我想发布到提醒读者像我这样的空格作为OP的问题中提到的一样的正则表达式的定义,包括新行,制表符和空格字符- 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

就我而言,我发现这个问题是因为我对忽略“回车空白差异”感兴趣,所以我需要这个:

git diff --ignore-cr-at-eolgit config --global core.whitespace cr-at-eol这里

您还可以通过省略 --global 参数并签入该存储库的设置文件,使其仅成为该存储库的默认值。对于我面临的 CR 问题,如果 .gitconfig 文件的 [core] 部分中的 warncrlf 或 autocrlf = true ,则它会在签入后消失。