根据.gitattributes文档,text
属性可启用行尾规范化:
text
将text属性设置到文件路径,可以启用行尾规范化并标记该路径为文本文件。行尾转换不需要猜测内容类型。
同样的文档还提到,eol=lf
也可以规范化换行符:
eol
此属性将特定的行尾风格设置为在工作目录中使用。它启用了行尾规范化而无需任何内容检查,实际上设置了text属性。
给出的示例将它们混合在同一个文件中似乎意味着它们之间存在一些(或许微妙的)差异:
*.txt text
*.vcproj eol=crlf
*.sh eol=lf
*.jpg -text
同时,似乎没有一个明确的声明说明它们是相同的,或者text
是eol=lf
的简写—尽管似乎是这样。我能够找到的与此类似的最接近的声明就是我上面引用的那句话,它说" effectively setting the text attribute"。但是,单词 effectively 似乎略微有所保留,好像它并没有实际设置文本属性,而只是更或多或少地设置它,或者具有几乎相同的效果。
究竟这两者有什么不同?(还是text
只是常见用例的简写?)在一个.gitattributes
文件中混合使用这两个是否有任何原因?
或者: text
需要Git猜测你需要哪种类型的换行符,而eol
(显然)指定了吗?
eol=lf
明确防止文件在检出时转换为 CRLF,而text
可能会根据 Git 系统配置引入 CRLF。 - miqh