Как отключить git end-of-line (CRLF для LF) во всех клонах/машинах?
как можно почерпнуть С другое посты, нормализация конца строки Git имеет свои плюсы и минусы. У меня есть один конкретный проект только для Windows, где я думаю, что лучше всего сделать, это отключить нормализацию конца строки вообще. То есть, я хочу оставить все новые строки (большинство из которых CRLF
) неповрежденным, а не иметь git нормализовать их до LF
- только за кулисами, и я хочу, чтобы это изменение повлияло на все клоны репозитория на все машины. Вопрос в том, как это сделать.
большинство обсуждений нормализации git end-of-line с точки зрения core.autocrlf
, и я мог бы достичь своей цели, установив core.autocrlf=false
. Однако это параметр git-config, и я считаю, что его нужно устанавливать отдельно на каждой машине. Если true, это кажется ошибкой, особенно с msysgit
установщик направляет один в настройку core.autocrlf=true
.
1 ответов
лучший способ избежать необходимости установки core.autocrlf
отдельно на каждой машине, кажется, проверке .gitattributes
файл в репозиторий, содержащий одну строку
* -text
или, если у вас есть более старая версия Git, то
* -crlf
это говорит Git, что для всех путей (таким образом,*
), нормализация конца строки не должна быть предпринята. Насколько я могу судить, это не должно иметь никаких других побочных эффектов. В частности, он не должен изменять то, как diffs сгенерировано (имеет отдельный атрибут diff
/-diff
) или как обрабатываются слияния (это имеет отдельный атрибут merge
/-merge
).
для более подробной информации, я предлагаю следующие ресурсы:
- документация gitattributes (
git help attributes
или копию), который подробно описывает, как работает нормализация конца строки и конкретные эффекты различных атрибутов. (Вероятно, наиболее релевантными являютсяtext
,crlf
,diff
,merge
, иbinary
.) - поток списка рассылки Git атрибут "text" означает только чтобы указать поведение нормализации конца строки или оно имеет более широкие последствия? (Mar 30, 2012), который расширяет значение различных атрибутов и разъясняет, что
-text
не означает просто "это двоичный файл".