Три значения для autocrlf
:
true
- когда содержимое попадает в хранилище (фиксируется), его окончания строк преобразуются в LF, а когда содержимоевыходит из хранилища (проверено), окончания строк конвертируются в CRLF.Это вообще предназначено для невежественных пользователей окон / редакторов.Учитывая предположение, что редактор (или пользователь) будет создавать файлы с окончаниями CRLF и будет волноваться, если увидит нормальные окончания LF, но вы хотите, чтобы окончания LF в репо, это, надеюсь, охватит вас.Впрочем, все может пойти не так.В связанных вопросах есть примеры ложных конфликтов слияния и сообщения об измененных файлах.
input
- когда содержимое попадает в хранилище, его окончания строк преобразуются в LF, ноСодержание остается нетронутым на выходе.Это в основном в той же области, что и true
, при условии, что редакторы действительно могут правильно обрабатывать LF-окончания;вы просто защищаете от возможности случайного создания файла с окончаниями CRLF.
false
- git вообще не работает с окончаниями строк.Тебе решать.Это то, что многие люди рекомендуют.С этим параметром, если концы строк файла будут перепутаны, вы должны знать об этом, поэтому конфликты слияний намного менее вероятны (при условии информированных пользователей).Обучение разработчиков тому, как использовать их редакторы / IDE, может в значительной степени решить проблему.Все редакторы, которые я видел разработанные для программистов, способны справиться с этим, если настроены правильно.
Обратите внимание, что autocrlf
не повлияет на содержимое, которое уже в хранилище.Если вы что-то делали с окончаниями CRLF ранее, они останутся такими.Это очень хорошая причина, чтобы избежать зависимости от autocrlf;если один пользователь не установил его, он может получить контент с окончаниями CRLF в репозиторий, и он останется без изменений.Более сильный способ форсировать нормализацию - текстовый атрибут ;установка его на auto
для заданного пути помечает его для нормализации конца строки, предполагая, что git решает, что содержимое является текстовым (не двоичным).
Связанная опция - safecrlf
, которая в основномпросто способ убедиться, что вы не безвозвратно выполняете преобразование CRLF для двоичного файла.
У меня нет большого опыта работы с проблемами Windows и мерзавцами, поэтому отзывы о последствиях / ловушках, безусловно, приветствуются.