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