请你能够解释一下git中的空格错误是什么意思,什么是“squleching”,我需要担心吗?(在msysgit上运行,但其他用户在linux上)。这里已经有一个关于autocrlf的“最终”答案here(将其设置为false
git config --global core.autocrlf false
)。git config --global core.autocrlf false
)。Squelching 最初是一种在电信中使用的函数,用于设置一个阈值,高于该阈值的信号可以通过,低于该阈值的信号则被抑制。
在你的情况下,当你看到:
warning: squelched 104 whitespace errors
warning: 109 lines add whitespace errors.
这意味着:它不会显示100多个错误消息,而是警告你应该已经显示了这些错误(但是为了避免混乱输出,它不会显示)
我没有关于空格策略的明确建议,除非首先确定它们最初是为什么引入的。
如果你的编辑器不会在Windows和Unix之间转换eol(行尾)字符,那么它意味着它自动添加或删除空格,这并不总是有用的。
第一项测试(如此博客文章所述)是禁用该策略:
git config core.whitespace nowarn
或者尝试
git config core.whitespace fix
看看是否有助于您的变基操作。
以下是如何在使用git apply时修复“结尾空格”错误:
首先需要了解的是:什么是空格错误。这在core.whitespace setting documentation中有解释。基本上,git处理几种类型的空格错误:
blank-at-eol
blank-at-eof
space-before-tab
indent-with-non-tab
tab-in-indent
cr-at-eol
尾随空格错误可能会在使用Windows样式行结束符(CRLF)补丁文件时引起。
为避免此警告,您可以要求git apply
不显示警告:
git apply --whitespace=nowarn fix.patch
或者您可以通过-c
在即时上编辑git配置,告诉git:"好的git,这次行末的CR没问题":
git -c core.whitespace=cr-at-eol apply fix.patch
如果你想要使它永久生效,只需像这样编辑git配置:git config apply.whitespace nowarn
或者:git config core.whitespace cr-at-eol
在搜索答案并查看git-config和git-apply手册后,我发现
git config apply.whitespace nowarn
禁用当前存储库中的空格错误显示。
要使其适用于所有存储库,请添加--global
,如下所示:
git config --global apply.whitespace nowarn
core.whitespace
对我没用,但 apply.whitespace
有效。在我的情况下,应用 diff 时会出现空格警告 git apply file.diff
。 - amertkara