У меня есть репозиторий Мерзавца, к которому получают доступ и из Windows и из OS X, и что я знаю, уже содержит некоторые файлы с окончаниями строки CRLF. Насколько я могу сказать, существует два способа иметь дело с этим:
Набор core.autocrlf
кому: false
везде,
Следуйте инструкциям здесь (отраженный на страницах справки GitHub) для преобразования репозитория, чтобы содержать только окончания строки LF и после этого установить core.autocrlf
кому: true
в Windows и input
на OS X. Проблема с выполнением этого является этим, если у меня есть какие-либо двоичные файлы в репозитории что:
они будут повреждены. Возможно, что мой репозиторий содержит такие файлы.
Итак, почему я не должен только выключать заканчивающее строку преобразование Мерзавца? Существует много неопределенных предупреждений в сети о наличии core.autocrlf
выключенные проблемы порождения, но очень немного определенных; единственные, которые я нашел до сих пор, - то, что kdiff3 не может обработать окончания CRLF (не проблема для меня), и что некоторые текстовые редакторы имеют заканчивающие строку проблемы (также не проблема для меня).
Репозиторий является внутренним к моей компании, и таким образом, я не должен волноваться о совместном использовании его с людьми с различными autocrlf настройками или заканчивающими строку требованиями.
Есть ли какие-либо другие проблемы только с отъездом окончаний строки как есть, что я не знаю?
Единственные конкретные причины установить autocrlf
в true
это:
git status
не показывал все ваши файлы как измененные
из-за автоматического преобразования EOL, выполняемого при клонировании Unix-based EOL Git repo в Windows-репо (см. issue 83, например)Если вы не видите конкретных процедур, которые должны иметь дело с родным EOL, вам лучше оставить autocrlf
на false
(git config --global core.autocrlf false
).
Обратите внимание, что этот конфиг будет локальным (потому что конфиг не передаётся из репозитория в репозиторий)
Если вам нужен одинаковый конфиг для всех пользователей, клонирующих этот репозиторий, посмотрите "Какая лучшая стратегия работы с CRLF
в git?", используя text
атрибут в .gitattributes
файле.
Пример:
*.vcproj text eol=crlf
*.sh text eol=lf
Примечание: начиная с git 2.8 (март 2016), маркеры слияния больше не будут вводить смешанное окончание строки (LF) в файл CRLF.
См. "Заставьте Git использовать CRLF в строках слияния "<<<<<<< HEAD""