Git 什么是;1行添加空白错误“;你是说什么时候贴补丁?
我正在编辑一个克隆的远程存储库的一些标记文件,并想测试如何从一个分支到另一个分支创建和应用补丁。但是,每次我进行任何更改时,都会在git apply期间收到以下消息:Git 什么是;1行添加空白错误“;你是说什么时候贴补丁?,git,whitespace,patch,git-patch,Git,Whitespace,Patch,Git Patch,我正在编辑一个克隆的远程存储库的一些标记文件,并想测试如何从一个分支到另一个分支创建和应用补丁。但是,每次我进行任何更改时,都会在git apply期间收到以下消息: 0001-b.patch:16: trailing whitespace. warning: 1 line adds whitespace errors. (这发生在我的Mac电脑上,我不知道原始代码是在哪里创建的。) 警告消息是什么意思?我需要关心吗?你不需要关心 该警告制定了一个关于空白的文本文件清洁标准,这是许多程序员往往
0001-b.patch:16: trailing whitespace.
warning: 1 line adds whitespace errors.
(这发生在我的Mac电脑上,我不知道原始代码是在哪里创建的。)
警告消息是什么意思?我需要关心吗?你不需要关心 该警告制定了一个关于空白的文本文件清洁标准,这是许多程序员往往关心的事情。正如所解释的那样: 被视为空白错误的内容是受控的 按core.whitespace配置。默认情况下,尾随空格 (包括仅由空格组成的行)和空格 一个字符,该字符后面紧跟一个制表符 行的初始缩进被视为空白错误 默认情况下,该命令输出警告消息,但应用修补程序
因此,“错误”意味着更改引入了尾随空格、仅限空格的行或制表符前面的空格。除此之外,更改没有任何错误,它将干净、正确地应用。换句话说,如果您不关心“不正确”的空格,可以忽略该警告或使用git config apply将其关闭。此处显示了可视图像的空格错误
当您想要区分“旧的”空白错误(您可能希望保留旧的原因)和“新的”空白错误(您希望避免)时,您可以合理地关心 为此,Git 2.5+(2015年第2季度)将提出一个更具体的空白检测选项 参见,和[2015年5月26日]by.
(于2015年6月11日被合并)
diff.c
:--ws-error highlight=
选项
传统上,我们只关心引入的空格分隔符
以新行显示。有些人想在旧电脑上画空白 还有台词。当他们在新行上看到空格破损时,他们 可以在相应的屏幕上发现相同类型的空格破损 老台词,想说“啊,那些破碎在那里,但它们 都是从原始版本继承的,所以现在我们不要碰它们。” 引入允许它们通过的
--ws-error-highlight=
选项
以逗号分隔的旧
、新
和上下文
列表,用于指定
要突出显示空白错误的行
委员会:
--ws错误突出显示=
以color.diff.whitespace
指定的颜色突出显示
指定行上的空白错误
是一个逗号分隔的列表,包含旧的,新的,上下文
如果未给出此选项,则仅突出显示新
行中的空白错误
例如,--ws error highlight=new,old
突出显示删除和添加行上的空白错误。
all
可用作旧、新上下文的简写
例如,旧提交有一个空格错误(bbb
),但您可以只关注新错误(在的末尾仍然是bbb
和ccc
):
(测试完成后)
在Git 2.26(2020年第1季度)中,子命令的diff-*
管道系列现在关注diff.wsErrorHighlight
配置,该配置以前被忽略;这允许“git add-p
”也向最终用户显示空白问题
参见(2020年1月31日)作者。
(于2020年2月14日合并)
:将diff.wsErrorHighlight移至“基本”配置
签字人:杰夫·金
我们在git_diff_ui_config()
中解析diff.wsErrorHighlight,这意味着它对管道命令无效,只对像它自己这样的瓷器有效。
这有点恼人,因为这意味着像add--interactive
这样的脚本会产生用户可见的颜色差异,不尊重该选项
我们可以教该脚本解析配置,并将其作为--ws error highlight
传递给diff管道。但有一个更简单的解决方案
对于管道而言,尊重此选项应该是合理安全的,因为它仅在启用颜色时生效。任何解析彩色输出的人都必须处理这样一个事实:color.diff.*
可能会改变他们看到的确切输出;这些选项自年创建以来一直是git_diff_basic_config()的一部分(添加一个“basic”diff-config回调,2008-01-04,git v1.5.4-rc3)
因此,我们可以将它移动到“基本”配置,它修复了add--interactive
,以及同一条船上的任何其他脚本,伤害任何管道用户的风险非常低
因为以TAB
i开头的行是空格的开头。继续修补文件并将选项卡
替换为空格
。例如,在vim on line+上,从修补程序文件类型x中删除空格,而不是删除符号+并在eqiv上插入空格(CTRL),使其达到原始大小。它对我有效:
git config apply.whitespace fix
每次提交使用前:
git add -up .
查看git show的提交
——如果你的git没有颜色,你会看到有问题的空格变成红色。此外, Git show——Word DIFR 将不仅显示行的变化,而且插入行的中间,这应该显示补丁是否只在中间添加了一个单词,或者如果它还添加了尾随空白。你不需要关心。但是你应该。应该删除尾随空格。除了OP没有添加新的尾随空格外,它只修改已经存在的内容
git add -up .