LF будет заменен на CRLF в git - Что это и важно ли?

Возможный дубликат:
Git заменяет LF на CRLF

Когда я создаю новое приложение rails, я вижу в git предупреждение о замене LF. Я делаю git init git add.

а потом бум! Я вижу это всплывающее окно почти для всех файлов. Обычно я просто продолжаю собирать приложение и оно исчезает после многих изменений в файлах.

Пример:

Файл будет иметь исходные окончания строк в вашем рабочем каталоге. предупреждение: LF будет заменен CRLF в Gemfile.

Файл будет иметь исходные окончания строк в вашем рабочем каталоге. предупреждение: LF будет заменен CRLF в Gemfile.lock.

Файл будет иметь исходные окончания строк в вашем рабочем каталоге. предупреждение: LF будет заменен на CRLF в README.

В чем разница между LF и CRLF?

Должен ли я беспокоиться об этом в долгосрочной перспективе или просто игнорировать это и продолжать идти, как обычно?

2 ответа

Решение

В системах Unix конец строки представлен переводом строки (LF). В окнах строка представлена ​​переводом каретки (CR) и переводом строки (LF), таким образом (CRLF). когда вы получите код из git, который был загружен из системы Unix, у них будет только LF.

Если вы хотите отключить это предупреждение, введите его в командной строке git

git config core.autocrlf true

Если вы хотите принять разумное решение, как Git должен справиться с этим, прочитайте документацию

Вот фрагмент

Форматирование и пробелы

Проблемы с форматированием и пробелами являются одними из самых неприятных и тонких проблем, с которыми сталкиваются многие разработчики при совместной работе, особенно кросс-платформенные. Для исправлений или другой совместной работы очень легко вносить незначительные изменения пробелов, потому что редакторы молча представляют их, и если ваши файлы когда-либо касаются системы Windows, их окончания строк могут быть заменены. Git имеет несколько опций конфигурации, чтобы помочь с этими проблемами.

core.autocrlf

Если вы программируете на Windows и работаете с людьми, которые не (или наоборот), вы, вероятно, столкнетесь с проблемами, связанными с окончанием строки. Это связано с тем, что Windows использует как символ возврата каретки, так и символ перевода строки для новых строк в своих файлах, тогда как системы Mac и Linux используют только символ перевода строки. Это тонкий, но невероятно раздражающий факт кроссплатформенной работы; многие редакторы в Windows молча заменяют существующие окончания строк в стиле LF на CRLF или вставляют оба символа конца строки, когда пользователь нажимает клавишу ввода.

Git может справиться с этим путем автоматического преобразования концов строк CRLF в LF, когда вы добавляете файл в индекс, и наоборот, когда он проверяет код в вашей файловой системе. Вы можете включить эту функцию с помощью параметра core.autocrlf. Если вы работаете на компьютере с Windows, установите для него значение true - это преобразует LF-окончания в CRLF при проверке кода:

$ git config --global core.autocrlf true

Если вы работаете в системе Linux или Mac, в которой используются окончания строк LF, вы не хотите, чтобы Git автоматически конвертировал их при извлечении файлов; однако, если файл с окончаниями CRLF случайно вводится, вы можете захотеть, чтобы Git это исправил. Вы можете указать Git преобразовывать CRLF в LF при фиксации, но не наоборот, установив для core.autocrlf значение input:

$ git config --global core.autocrlf input

Эта настройка должна оставить вас с окончаниями CRLF в проверках Windows, но с окончаниями LF в системах Mac и Linux и в репозитории.

Если вы программист Windows, выполняющий проект только для Windows, вы можете отключить эту функцию, записав возврат каретки в хранилище, установив для параметра конфигурации значение false:

$ git config --global core.autocrlf false

Если вы хотите, вы можете отключить эту функцию в конфигурации git core, используя

git config core.autocrlf false

Но было бы лучше просто избавиться от предупреждений, используя

git config core.autocrlf true
Другие вопросы по тегам