Max*_*sca 15 git macos vim newline eof
所以我git diff --check
在add
-ing文件和commit
-ing它们之前运行,并在我得到的两个特定文件上运行path/filename:linenumber: new blank line at EOF
.如果我删除这些文件中的最后一个空行,我不会收到任何消息,但我认为使用换行符结束文件是一种很好的方式.奇怪的是,我认为其他文件具有完全相同的结尾,不会给出任何消息.我是git的新手,在OS X Yosemite上使用git 2.0.1.我使用vim作为我的编辑.
如何在避免此消息的同时以换行符结束我的文件?我应该忽略它吗?
rom*_*inl 22
这里有两个问题.
你对"换行"与"新行"感到困惑:
"新行"是实际的空行(仅包含"换行符"),"换行符"是用于标记当前行结尾的特殊字符.
大多数编译器,解释器和Unix工具都希望您的文本文件以换行符结束,以避免在处理多个文件时产生歧义,而不是"新行".
大多数编辑,包括Vim,在每一行的末尾添加必要的字符,包括最后一行,因此您无需做任何事情来确保满足要求.
特别是在EOF上没有添加"新线".
你可能习惯了不良行为:
传统上,"换行符"字符被Unix工具,大多数编译器和Vim解释为"行终止符号".这意味着在该角色之后的任何内容都被认为是在另一条线上.由于该字符是文件中的最后一个字符,因此没有理由显示用户不存在的行.
唉,大多数GUI编辑器将其解释为"行分隔符",这意味着它标记了两行之间的分隔,并且这些编辑器通常在文件末尾显示不存在的行以满足该解释.
我可能假设太多,但看起来你习惯了这种错误的行为,并试图通过在文件末尾添加一个完全不必要的"新行"来模仿它.
要么继续在源文件的底部添加"新行",请将其视为某种格式和编码指南,并停止将这些Git消息视为错误消息.
或者你停止添加那些无用的"新行".
我会选择第二种选择.
Sas*_*olf 13
- 校验
如果更改引入空白错误,则发出警告.什么被认为是空白错误由
core.whitespace
配置控制.默认情况下,尾随空格(包括仅由空格组成的行)和在行的初始缩进内紧跟着制表符的空格字符被视为空格错误.如果发现问题,则退出非零状态.与--exit-code不兼容.
相应地,git config
文档:
core.whitespace
要注意的常见空格问题的逗号分隔列表.git diff将用于
color.diff.whitespace
突出显示它们,而git apply --whitespace = error会将它们视为错误.您可以使用前缀-
禁用其中任何一个(例如-trailing-space
):
blank-at-eol
将行末尾的尾随空格视为错误(默认情况下启用).
space-before-tab
将行的初始缩进部分中的制表符前面出现的空格字符视为错误(默认情况下启用).
indent-with-non-tab
将带有空格字符而不是等效选项卡缩进的行视为错误(默认情况下不启用).
tab-in-indent
将行的初始缩进部分中的制表符视为错误(默认情况下不启用).
blank-at-eof
将文件末尾添加的空行视为错误(默认情况下启用).
trailing-space
是一个简短的覆盖blank-at-eol
和blank-at-eof
.
cr-at-eol
在行尾处理一个回车符作为行终止符的一部分,即使用它,如果在回车符之前的字符不是空格(默认情况下未启用),则不会触发尾随空格.
tabwidth=<n>
告诉标签占用多少个字符位置; 这与缩进与非制表符相关,当Git修复制表符缩进错误时.默认选项卡宽度为8.允许的值为1到63.
如您所见,blank-at-eof
默认情况下已启用.您可以通过添加禁用-blank-at-eof
的core.whitespace
,或者使用自己的配置core.whitespace
结构.
归档时间: |
|
查看次数: |
9637 次 |
最近记录: |