我喜欢使用git diff -w
来忽略空白差异。 但是,我只是注意到它忽略了线条中间的空白差异。 我怎么才能忽略行开头(^)或结尾($)的空白差异?
#1楼
对于行尾使用:
git diff --ignore-space-at-eol
而不是你目前使用的是什么:
git diff -w (--ignore-all-space)
如果你想要一个内置的解决方案,那么你就不幸了!
但是,如果你不介意弄脏手,那里有一个相当古老的补丁浮出某处,增加了对“--ignore-space-at-sol”的支持。
#2楼
这是一个老问题,但仍然经常被查看/需要。 我想发帖告诉像我这样的读者,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参数,并为回购设置文件检查。 对于我遇到的CR问题,如果.gitconfig文件的[core]部分中的warncrlf或autocrlf = true,它会在签入后消失。