Можно ли отправить core.autocrlf в удаленный репозиторий?

У нас есть централизованный репозиторий git, в котором есть проект только для Windows. Поэтому мы ожидаем, что autocrlf будет ложным.

Однако кто-то также работает над кроссплатформенным проектом и устанавливает

git config --global core.autocrlf true

Если они забудут изменить настройку этого репозитория Windows git, они сохранят в нем конечный файл unix, чего мы не ожидаем.

Итак, я хочу следующее: независимо от того, как установить "git config --global core.autocrlf", autocrlf всегда ложно при клонировании этого репо и не требует дополнительных шагов для его установки.

Я знаю, что мы можем установить core.autocrlf для локального репо, но как это можно сделать для удаленного репозитория?


person RolandXu    schedule 11.09.2013    source источник


Ответы (3)


Вы можете добавить и зафиксировать файл .gitattributes. , который устанавливает eol=crlf для файлов тех типов, которые вам необходимы, чтобы иметь оконечные устройства Windows (например, *.cs, *.*proj и т. д.).

Или может быть просто установлен

*       text=auto

в этом файле, чтобы иметь LF в репозитории и все, что ваши пользователи хотят в своих рабочих деревьях.

Точный подход зависит от того, что уже есть в вашем репозитории.

Кстати, блок комментариев в .gitattributes файле из проекта Mono является особенно информативно о проблемах нормализации EOL на разных платформах.

person kostix    schedule 11.09.2013

Убедитесь, что для переменной среды GIT_TEMPLATE_DIR вашего пользователя задан шаблон "каталог ", где у вас есть шаблон git repo.

Этот шаблон будет использоваться при клонировании или инициализации нового репо и может содержать настраиваемый файл конфигурации шаблона.

Вопрос «Global git hook» иллюстрирует, как эти механизмы шаблона можно использовать для предварительной настройки других аспектов репо. .

person VonC    schedule 11.09.2013

вы можете установить ловушку на стороне сервера, которая проверяет правильность окончания строк и централизованно отклоняет / решает проблему.

см. этот крючок GIT CRLF для примера решения (хотя в объезд)

person umläute    schedule 11.09.2013