Git — автоконвертация CRLF и всё такое

git-90x90
Недавно пришлось поразбираться с автоконвертацией Git. Там не всё так очевидно, как кажется. Вот казалось бы — просто редактируй файл и делай свои коммиты. Но нет!

Всё началось с того, мы начали получать дикие конфликты, приглядевшись мы поняли, что проблема в преобразовании CRLF. Мой редактор под Windows сохранял файлы с CRLF в качестве знака окончания строки, а редактор моего коллеги, работающего под линуксом — LF. Причём иногда редактор сохраняет так, а иногда эдак, и логика его поведения не очевидна. В результате мы получали конфликты даже в тех файлах, которые даже не меняли.

В результате гугления выяснилось что с опцией autocrlf всё не так просто

* autocrlf true — git при каждом коммите будет преобразовывать CRLF в LF и наоборот при чтении из репозитория. Таким образом в репозитории будет православный LF а пользовательский редактор будет получит CRLF. Это сделано специально для Windows пользователей.

* autocrlf input — git при каждом коммите будет преобразовывать CRLF в LF, но при чтении из репозитория выдаст всё как есть в оригинале. Эта опция для тех, у кого редактор нормально воспринимает оба окончания строки, но хочет содержать репозиторий в едином формате. Эта опция рекомендуется для линуксоидов.

* autocrlf false — git не выполняет никаких преобразований. Как файлы создаёте — так они и будут сохранены. В общем-то подходит, если кроме вас никто не работает в этом репозитории, или если все разработчики используют софт с одинаковыми принципами сохранения конца строки.

Вот. Теперь мы с коллегой поставили себе нужные настройки. Пока конфликтов не попадалось

Есть у кого-нибудь чем-нибудь дополнить в мою картину мира?