Git 二进制补丁作为文本应用有很多空白错误

Git binary patch as text applying has many whitespace errors

当对文本使用 git diff -a 时,例如 git diff --no-index -a dir1 dir2 > dir.patch,当我使用 git apply 应用补丁时,我收到许多关于尾随空格和抑制数千个空格错误的空格警告。我应该担心这些吗? diff 显示修补后的目录与其预期的修补状态字节相同,因此没有任何损坏。 (我知道 --binary 会处理这些错误。)

Should I be worried about [Git's whitespace-error warnings]?

仅当您同意 Git 对空白的相当固执己见的立场时。也就是说,默认情况下,Git 认为文件中的一行以空格结尾是不好的。如果我们让符号$代表一行的结束,那么:

hello world$

可以,但是:

hello world $

不是。虽然大多数 Git 命令对此只字未提,但 git diff 突出显示 “坏” 空格,并且 git apply 抱怨 “坏”空格。

如果您同意Git(and/or如果这样的空格很重要),您可以配置Git,或者使用 git apply 的命令行参数来更改它抱怨的内容或禁用投诉。如果您认为 Git 是正确的,您可以将 git apply 的抱怨变成彻底的错误,而不是警告,或者告诉 Git 修复此类错误(例如,去除尾随空白从上面的行)。

有关空格选项的完整列表,请参阅 the git-config documentation 中描述的 core.whitespace 设置。