конфигурация git crlf в смешанной среде - PullRequest
1 голос
/ 18 июня 2010

Я работаю в смешанной среде и держу центральное, чистое хранилище, куда я вытаскиваю и толкаю большинство своих вещей.Этот централизованный репозиторий работает в Linux, и я обращаюсь к Windows XP / 7, Mac и Linux.Во всех репозиториях я поместил следующую строку в мой .git / config:

[core]
     autocrlf = true

У меня нигде нет флага safecrlf=true.В первый раз, когда я изменяю материал на моей машине с Windows (XP), нет проблем, и когда я смотрю на diff, он выглядит хорошо.Но когда я делаю то же самое на другом компьютере с Windows (7), все строки отображаются как измененные, но локальные окончания строк \ r \ n, как и ожидалось (при проверке в шестнадцатеричном редакторе).То же самое относится к банке MacOSX.Иногда у меня возникает ощущение, что разные системы борются в конце строки, но я не могу быть уверен (я теряю отслеживание всех раз, когда меняю определенные файлы).

Я не использовал, чтобы иметьautocrlf установить, но установить флаг много месяцев назад.Может ли это быть причиной моих текущих проблем?Нужно ли мне снова все клонировать, чтобы потерять старый багаж?Или есть другие вещи, которые тоже нужно настроить?Я пробовал git checkout -- . около миллиона раз, но безуспешно.

1 Ответ

3 голосов
/ 20 июня 2010

Вам необходимо установить autocrlf на true на каждом компьютере, на котором вы работаете (в глобальном масштабе), или для каждой копии репозитория (в локальном).Параметры клонирования, из которого вы клонировали, не применяются к вашему локальному репо.

Другой ответ заключается в том, что в файлах вашего репо есть сочетание концов строк.

Фильтр включенcheckout может быть настроен для каждого типа исходного файла, чтобы исправить их окончания строк, и на checkin, чтобы сбросить их до стандарта репо.

...