Вы можете написать ловушку предварительной фиксации , которая проверяет наличие CRLF, которую каждый (и интегратор в частности) помещает в свой каталог .git/hooks/
. Например, проверка дерева на ! grep -qPrI '[^\r]$' .
(если ваш grep поддерживает -P
) (предостережение: я не действительно проверял это выражение). Точно так же вы могли бы также написать ловушку, которая проверяет, что все файлы являются действительными UTF-8.
Тем не менее, я думаю, что core.autocrlf
(см. git-config ) звучит больше как решение вашей проблемы CRLF; таким образом, все файлы в хранилище будут иметь LF, и тот, у кого есть инструменты, генерирующие CRLF, ничего не испортит. На стороне кодирования избегайте не ASCII, или, если это невозможно, убедитесь, что все инструменты настроены для UTF-8.
Самым важным моментом для проверки правил (например, для окончаний строк и кодировок) является интегратор (то есть тот, от которого все клонируют). Если интегратор просто отказывается объединять коммиты, которые разбивают окончания строк и т. Д., Можно избежать большинства нарушений (хотя участники, очевидно, все еще должны настроить свои инструменты).
как мне поделиться этой настройкой git со всеми разработчиками, чтобы никто не мог забыть настроить ее?
Вы можете распространять свои .git/config
или ~/.gitconfig
(или соответствующие записи в нем). Я не думаю, что можно автоматически распространять настройки через git clone
.