【发布时间】:2014-01-27 00:37:16
【问题描述】:
我有一个可用于 Windows 和 Linux 的源代码库。
我知道 Git 会自动将 EOL 转换为本地标准:\r\n 在 Windows 和 \n 在 Linux 上。
这不是源文件的问题。
但我有一些 CSV 文件,它们使用带有给定 EOL 字符 (\r\n) 的固定格式,不应更改,但 Git 也会转换它们,破坏了一些代码。
我试图通过在 .gitignore 文件旁边的根目录下创建一个 .gitattributes 文件来防止 CSV 文件的 EOL 转换,其中包含以下内容:
*.csv -text
我已经应用了我所理解的内容:http://git-scm.com/docs/gitattributes
但 Git 仍在 Linux 上将 \r\n 转换为 \n。
我应该使用 auto.crlf 等其他设置吗?
请注意,我对 Linux 本地存储库的控制有限,因为它由 持续集成服务器 Jenkins 管理。
感谢您的任何意见。
【问题讨论】:
-
linux上的文件扩展名是区分大小写的。您的 CSV 文件实际上是 *.CSV 吗?尝试在您的 .gitattributes 文件中添加一些大小写变体。
-
你试过
*.csv eol=crlf吗? -
@PaulHicks:谢谢,但所有扩展名都是小写的“csv”。
-
@AchalDave:感谢您的建议,但其他一些 CSV 文件可能会被格式化为 \n 而不是 \r\n 所以我可以' t 应用统一的转换策略,我想禁用任何转换。
标签: git github eol end-of-line