Разработка кросс-платформы с использованием Git (проблема EOL)

В нашей среде разработки мы используем Windows, Mac и Linux. У меня возникают проблемы, когда дело доходит до рабочего потока commit -> pull -> push.

Проблема заключается в символах конца строки. Если кто-то делает редактирование на Mac, а кто-то еще делает редактирование в Windows, они конфликтуют при потянув. Разница показывает весь файл как отличный, поскольку окончание строк имеет изменения.

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

Ответ 1

То, о чем вы просите, - это настроить для каждого параметра конфигурации core.autocrlf на input, что приведет к нормализации строки на входе (т.е. данные, поступающие в репозиторий; фиксация), но не на выходе ( данные, выходящие из репозитория, проверка, которая происходит во время pull).

Однако вы, возможно, на самом деле не хотите этого делать. Идеальная вещь для каждого - просто правильно настроить редакторов. Большинство редакторов программистов достаточно разумны в этом вопросе: они будут обнаруживать окончания строк и использовать те же окончания строк при записи в файл. Некоторым редакторам может понадобиться небольшая помощь.

(см. например, VonC answer здесь и другие вопросы о autocrlf.)