Как отключить 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 59

1 ответ:

лучший способ избежать необходимости установки core.autocrlf отдельно на каждой машине, кажется, проверяет a .gitattributes файл в репозиторий, содержащий одну строку

* -text

или, если у вас есть более старая версия Git, то

* -crlf

это говорит Git, что для всех путей (таким образом,*), конечная нормализация не должна быть предпринята. Насколько я могу судить, это не должно иметь никаких других побочных эффектов. В частности, он не должен изменять то, как различаются генерируется (это имеет отдельный атрибут diff/-diff) или как обрабатываются слияния (это имеет отдельный атрибут merge/-merge).

для более подробной информации, я предлагаю следующие ресурсы:

  1. gitattributes документация (git help attributes или копию), который подробно описывает как то, как работает нормализация конца строки, так и конкретные эффекты различных атрибутов. (Вероятно, наиболее актуальными являются text,crlf,diff,merge, и binary.)
  2. в Git список рассылки нить это атрибут "текст" означает только чтобы указать поведение нормализации конца строки, или это имеет более широкие последствия? (30 марта 2012 г.), который расширяет значение различных атрибутов и уточняет, что -text не означает просто "это двоичный файл".