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