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