禁止 PDF 的 git EOL 转换

禁止 PDF 的 git EOL 转换

我正在维护 PDF 的 git 存储库,但无法阻止 gitr 将 EOL 从 CRLF 转换为 LF。由于存储库在 Linux 和 Windows 之间共享,并且包含 Linux 脚本,因此我选择将行尾标准化为 LF。

这是 reporoot/.gitattributes:

*.exe -text
*.pdf -text
* text eol=lf

这是 reporoot/.git.config 的(相关?)部分:

[core]
    autocrlf = false

PDF 位于 /Reports

当提交时(在 Linux 上),我收到以下消息:

警告:Reports/2017-09-22.pdf 中的 CRLF 将被 LF 取代。文件将在您的工作目录中保留其原始行尾。

但是当我拉取(在 Windows 上)时,pdf 已损坏并且无法正确显示(有时 - 我猜那些可以正常工作的 pdf 在其数据中没有 CRLF)。

我究竟做错了什么?

答案1

来自 git 手册:

当多个模式与路径匹配时,后面的行将覆盖前面的行。此覆盖按属性进行。

因此,该* text行将覆盖之前的行。

正确的顺序.gitattributes是这样的:

* text eol=lf
*.exe binary 
*.pdf binary

相关内容