Ответ 1
Подробно то, что я хочу, это преобразовать в lf в commit и оставить как есть при проверке.
Git не конвертируется при фиксации, а скорее в git add
. (Точнее, он выполняет преобразования в операциях, которые копируют объект в репозиторий и генерируют хеш-значение, но для большинства целей это просто git add
в любом случае.) В это время он применяет любые "чистые" фильтры и делает входную сторону EOL. (Аналогично, фильтры "smudge" на стороне выхода и операции EOL возникают при копировании из репозитория в дерево работы, которое для большинства целей - git checkout
и git reset --hard
.)
Согласно документация gitattributes, установите eol=lf
:
... заставляет Git нормализовать окончания строки для LF на checkin и предотвращает преобразование в CRLF, когда файл выдан.
Следовательно, хотя я на самом деле не тестировал это, похоже, что * eol=lf
- это именно то, что вы хотите. Обратите внимание, что это отличается от core.eol
, который ведет себя так, как вы описали в своем вопросе; это только для параметра .gitattributes
, которое применяется к файлам, которые соответствуют шаблону name.