Как известно, в разных операционных системах приняты разные символы для перевода строк, в Windows – это два символа \r\n (или CR и LF, код 0D0A в 16-ричной системе счисления), в *nix – просто \n (LF, код 0A), а в Mac – \r (CR, код 0D). Настройка core.autocrlf предназначена для того, чтобы в главном репозитории все переводы строк текстовых файлах были одинаковы.
Работает эта настройка так. Пусть для репозитория настройка core.autocrlf установлена в значение true следующей командой
git config core.autocrlf true
Тогда при коммитах (или, если более строго, при чтении файлов из файловой системы) все переводы строк при хранении будут приведены к виду \n, как в *nix, а при записи в файлы будут преобразованы к виду \r\n, как в Windows.
Давайте проведем несколько экспериментов в этим параметром.
Так как по крайней мере в Windows значение core.autocrlf по умолчанию установлено в true, то для чистоты эксперимента установим значение этого параметра явно в конфиге пользователя:
git config –global core.autocrlf true