我正在维护 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