我喜欢用来git diff -w
忽略空白差异。但是,我只是注意到它甚至忽略了行中间的空白差异。我怎么能只忽略行首 (^) 或行尾 ($) 的空白差异?
2 回答
对于行尾使用:
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 -b
或git diff --ignore-space-change
将忽略行尾的空格。如果您希望该设置成为您的默认行为,则以下行将该意图添加到您的 .gitconfig 文件中,因此它将始终忽略行尾的空格:
git config --global core.whitespace trailing-space
就我而言,我发现了这个问题,因为我有兴趣忽略“回车空格差异”,所以我需要这个:
git diff --ignore-cr-at-eol
或
git config --global core.whitespace cr-at-eol
从这里。
您还可以通过省略 --global 参数并签入该 repo 的设置文件,使其成为该 repo的默认值。对于我遇到的 CR 问题,如果 .gitconfig 文件的 [core] 部分中的 warncrlf 或 autocrlf = true ,它会在签入后消失。