Git: Как мне избавиться от "предупреждения: CRLF будет заменен LF" без отключения safecrlf?
Я новичок в git, и я много читал о окончаниях строк и
как git лечит их. Кстати, я на Windows. я сделал
a .gitattributes
и установить, например, *.txt в текст.
Когда я фиксирую файл .txt, я получаю предупреждение:
предупреждение: CRLF будет заменен на LF в any.txt
Но я это знаю. Мне это не нужно. Замена линии
окончание в текстовых файлах - это то, что я хочу.
Теперь установка safecrlf
на false делает предупреждение
исчезнут, но руководство для safecrlf
гласит:
Если true, делает git проверяет, является ли преобразование CRLF обратимым когда включено преобразование конца строки. git проверит, если команда изменяет файл в дереве работы либо непосредственно или косвенно. Например, запись файла, за которым следует проверка того же файла должна привести к исходному файлу в дереве работ. Если это не так для текущей установка core.autocrlf, git отклонит файл.
От этого safecrlf
кажется хорошей идеей.
Однако я не понимаю, почему установка safecrlf
на true
дает мне предупреждения о моих текстовых файлах; мне кажется, что
это разные проблемы - предупреждение о текстовых файлах и
проверка, если обратимая. Действительно, git не отвергает мои
файл.
Могу ли я избавиться от предупреждений для текстовых файлов и
safecrlf
установлен? Или я что-то не понимаю?
Ответы
Ответ 1
Насколько я могу судить, установка core.safecrlf
в false
- это только способ отключить это предупреждение.
safecrlf
обычно не требуется, если ваши атрибуты установлены правильно. Точкой safecrlf
является предотвращение нормализации в файле, который должен иметь смешанные (или не-LF) окончания строки в репозитории. Это действительно полезно только в сочетании с core.autocrlf
(чтобы убедиться, что его автоматические догадки ничего не могут уничтожить), и если вы настраиваете свои собственные атрибуты через .gitattributes
, все должно быть в порядке, чтобы отключить все это.
Ответ 2
В .gitattributes
вы можете:
# normalize text files to use lf
text eol=lf
# except these which we want crlf
*.txt eol=crlf
Ответ 3
Короткий ответ на ваш вопрос НЕТ.
Поскольку, в основном, настройка core.safecrlf контролирует "уровень предупреждения":
- false - действовать без предупреждения
- warn - продолжить с предупреждением
- true - не продолжать
Итак, вам нужно выбрать вариант, который вам больше всего подходит.