Как отключить 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не означает просто "это двоичный файл".