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

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

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

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

Пример:

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

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

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

Какая разница между LF и CRLF?

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

Ответ 1

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

Если вы являетесь одним разработчиком, работающим на компьютере с Windows, и вам все равно, что git автоматически заменяет LF на CRLF, вы можете отключить это предупреждение, введя в командной строке git следующее

git config core.autocrlf true

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

Вот фрагмент

Formatting и Whitespace

Проблемы с форматированием и пробелами являются одними из самых неприятных и тонкие проблемы, с которыми сталкиваются многие разработчики при сотрудничестве, особенно кроссплатформенный. Это очень легко для патчей или других совместная работа по внедрению тонких изменений пробелов, потому что редакторы молча представляют их, и если ваши файлы когда-либо касаются Система 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 в ввод:

$ git config --global core.autocrlf input

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

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

$ git config --global core.autocrlf false

Ответ 2

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

git config core.autocrlf false

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

git config core.autocrlf true