Я поддерживаю git-репозиторий PDF-файлов, и у меня возникают проблемы с остановкой gitr, конвертирующей EOL из CRLF в LF. Поскольку репозиторий распределяется между Linux и Windows и содержит сценарии Linux, я решил стандартизировать LF для окончаний строк.

Это reporoot/.gitattributes:

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

Это (актуально?) часть reporoot/.git.config:

[core]
    autocrlf = false

PDF-файлы находятся в / Отчеты

При фиксации (в Linux) я получаю это сообщение:

предупреждение: CRLF будет заменен на LF в Reports/2017-09-22.pdf. Файл будет иметь исходные окончания строк в вашем рабочем каталоге.

Но когда я вытащил (в Windows), PDF поврежден и не отображается должным образом (иногда - я думаю, те, которые работают, не имеют CRLF в своих данных).

Что я делаю неправильно?

1 ответ1

0

Из руководства по git:

Когда более чем один шаблон соответствует пути, более поздняя строка переопределяет более раннюю строку. Это переопределение выполняется для каждого атрибута.

В результате текстовая строка * text переопределяет более ранние строки.

Правильный порядок для .gitattributes :

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .