Как заставить Git конвертировать файлы CRLF в LF в Linux?

Я пытаюсь сделать что-то очень простое: проверить репозиторий, в котором есть файлы с окончаниями CRLF (и без .gitattributes), и в итоге получить собственные (LF) окончания строк. Я даже не хочу возвращаться.

Я прочитал предложение Github и Статья Тима Клема, но в основном они нацелены на Разработчики Windows.

Я пробовал это:

$ git config --global core.autocrlf=input
$ git clone https://github.com/DennisSchiefer/Project-OSRM-Web.git

Но нет — файл OSRM.Config.js, который мне небезразличен, по-прежнему имеет окончания CRLF.

Попытка core.autocrlf=true не помогла.

Даже добавление и фиксация файла .gitattributes (затем git rm --cached -r . && git reset --hard) не помогает.

Я не могу найти какую-либо комбинацию, которая на самом деле оставила бы окончания строк LF в этом файле.


person Steve Bennett    schedule 14.02.2015    source источник


Ответы (1)


core.autocrlf заставит git обрабатывать все текстовые файлы.

Если OSRM.Config.js не обрабатывается, это означает, что Git считает его двоичным.
См.:

Даже с .gitattributes с *.js text все равно останется crlf.

Но с *.js eol=lf это фактически приведет к преобразованию.

См. "Может ли git .gitattributes обрабатывать все файлы как двоичные, за исключением нескольких исключений?".

person VonC    schedule 14.02.2015
comment
Среди других строк в моих .gitattributes: *.js text - person Steve Bennett; 14.02.2015
comment
@SteveBennett text означает crlf diff, например binary означает -crlf -diff (stackoverflow.com/a/4264522/6309), может быть, попробовать *.js text lf diff? - person VonC; 14.02.2015
comment
@СтивБеннетт или *.js eol=lf - person VonC; 14.02.2015
comment
@SteveBennett здорово. Я включил свои комментарии в ответ для большей наглядности. - person VonC; 14.02.2015