正如问题所述,我们有一些测试CSV文件需要保留其行尾。稍后将使用这些文件来测试CSV解析器。
非重复编辑:我不想将所有文件的结尾转换为LF。我想将特定文件推送到Git端保留其原始行结尾,例如CRLF。因此所有其他文件将被标准化为LF,这是Git的默认值,而CSV文件将使用CRLF提交。
答案 0 :(得分:1)
在.gitattributes
中,设置用于特定文件的行结束样式。
with-dos-line-endings.csv eol=crlf
with-unix-line-endings.csv eol=lf
答案 1 :(得分:0)
关于.gitattribute文件的@chepner建议我使用了他提出的配置。它没有按预期工作,所以我做了一些挖掘。原来答案是在Git手册中! (RTFM,我知道吗?!)。
检查Git Manual上的EFFECTS部分。
<强> EOL 强>
此属性设置要在其中使用的特定行结束样式 工作目录。它可以在没有任何情况下实现行尾标准化 内容检查,有效设置文本属性。设置为字符串值“
crlf
”
此设置强制Git规范化线 签入时此文件的结尾并在转换时将它们转换为CRLF 文件已签出。设置为字符串值“
lf
”
此设置强制Git规范化线 在签入时结束LF并防止在文件时转换为CRLF 签出。
我真正需要的是-text
。通过使用-text
,您可以让Git将该文件视为二进制文件,而不会影响其行结尾。
取消设置路径上的
text
属性会告诉Git不要尝试任何属性 签入或结账时的行结束转换。
向后兼容的版本:
向后兼容
crlf
属性
为了向后兼容,crlf
属性解释如下:
crlf text
-crlf -text
crlf=input eol=lf