Git core.autocrlf строка, установленная по умолчанию

Я пытаюсь выяснить, что является значением по умолчанию для core.autoclrf в Git, если пользователь не изменил этот параметр.

Я просмотрел документы, но не могу найти эту информацию. Не могли бы вы указать мне в правильном направлении?

В частности, при новой установке Git, Git автоматически преобразует окончание строк Windows в Unix при переходе на репо из системы Windows?

Спасибо!

Ответ 1

Проверяя исходный код git, по умолчанию для core.autocrlf установлено значение false. (И было с момента первоначального введения свойства 13 февраля 2007 года, хотя с тех пор оно было преобразовано из статического значения в константу.)

Установщик Windows требует, чтобы вы выбрали значение для этого свойства, которое явно задано в конфигурации git system.

Ответ 2

Трудно найти это, но я смог выяснить по результатам проб и ошибок, что:

  • значение по умолчанию - "false"

  • Установщик Windows позволяет выбрать желаемое поведение, но по умолчанию (если вы устанавливаете без изменения предлагаемых настроек) он устанавливает значение "true" . Это не программное обеспечение по умолчанию, установщик устанавливает системный параметр core.autocrlf.

"false" означает отсутствие обработки на концах строки "true" означает проверку как LF и проверку в соответствии с системой (CRLF для Windows и LF в Unix).

Когда используются Unix и Windows, рекомендуется использовать "false" в Unix (поскольку автоматическое преобразование может разорвать некоторые двоичные файлы, которые просматривают текстовые текстовые файлы, а Unix использует LF в любом случае) и "true" в Windows (в противном случае репозиторий заполняется CRLF, что вызывает проблемы совместимости).

Ответ 3

Вы можете перечислить все значения ключа конфигурации, выпустив эту команду

git config --list

И, как я вижу, значение по умолчанию

core.autocrlf = истина

Хотя это настройка, которую я выбрал (или, лучше сказать, "не касался" ), когда я устанавливал Git для Windows

Ответ 4

Для целей конкретной ситуации OP, а также в случае межплатформенных различий, глобального файла .gitconfig и локального файла .gitconfig лучшим способом определить это должно быть выполнение:

git config auto.crlf

после чистой установки Git выяснить, какие настройки преобладают.

Обратите внимание, что вывод команды будет меняться в зависимости от вашего текущего рабочего каталога (и его локального .gitconfig)


НОТА:

Комментарий, описывающий ту же команду в Unix, действительно работает, но автор постера использовал неверный ключ конфигурации. Это должен быть core.autocrlf, а не autocrlf.

Документация на git-scm.com/book/en/v2/Customizing-Git-Git-Configuration перечисляет три параметра, но не говорит, какой по умолчанию, и в моей чистой установке в git config Ubuntu --list не дает записи для autocrlf, git config --get autocrlf возвращает ошибку: ключ не содержит раздел: autocrlf. Предположительно это означает, что по умолчанию установлено значение false, но было бы хорошо, чтобы это было подтверждено.

Ответ 5

Если вы используете новейший установщик окна git, по умолчанию для параметра core.autoclrf будет false.