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

2020/03/07 19:16
阅读数 823

我喜欢使用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 -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,它会在签入后消失。

展开阅读全文
打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部