Вы можете написать pre-commit hook, который проверяет наличие 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
.
Почему вы хотите это сделать? Одна из лучших функций систем управления версиями - позволить людям на разных платформах (с разными окончаниями строк) работать вместе. Часть UTF-8 кажется разумной. –
потому что я хочу стандартные инструменты (мы пытаемся сделать гибкие вещи). И у меня есть первокурсники как коллеги, поэтому я решаю за них. Более того, мы можем попробовать настроить, как только стандартизация будет работать. Пока ничего не работает, и я вижу сражение на концах линии. И сам, как ведущий разработчик, я не знаю, как настроить все. – nraynaud