Почему я получаю разрывы строк CRLF в исходных файлах, хотя я нахожусь в среде Mac + Linux только с Git и IDEA? - PullRequest
9 голосов
/ 13 августа 2011

Мой босс и я - единственные, кто работает над нашим проектом, и мы используем Mac исключительно для разработки.Мы занимаемся разработкой groovy / grails и развертыванием на серверах Linux.В нашем процессе разработки нигде не используется MS Windows, но каким-то образом, когда я раздаю файлы с помощью git в оболочке bash, я в конечном итоге вижу эти глупые ^M символы, которые обозначают CR (и вместе со строкойfeed, CRLF).

Это появляется в файлах из ниоткуда.

Я искал в Интернете, где установить IntelliJ IDEA для использования только LF в качестве окончания строки, но не смог найти его.Сложность поиска гугл-ответов об IDEA усугубила мое разочарование.

Я хочу сделать следующее:

  1. Настроить git на моей машине (OS X) на абсолютно отказаться что-нибудь CRLF.

  2. Кроме того, я использую gitolite в качестве уровня доступа для нашего центрального сервера репозитория (который является Ubuntu Linux).Если возможно обеспечить принудительный отказ от CRLF в гитолите, тем лучше.

  3. Настройте IntelliJ IDEA, чтобы никогда не сохранять что-либо как CRLF.Если возможно, даже сделайте так, чтобы для существующих файлов, полных CRLF, если я добавляю столько места, сколько нажимаю «Сохранить», все CRLF удаляются (преобразуются в один LF).*

В целом я считаю себя очень опытным с Git, но меня ужасно смущает вся конфигурация вокруг CRLF.Может кто-нибудь сказать мне, что все эти настройки должны быть для кого-то в моем положении?

Суть здесь в чисто * nix / LF-конец строки, я не хочу иметь дело с CRLFерунда.Это должно быть абсолютно не проблема, и я ненавижу иметь дело с этим (в случае, если вы не можете сказать).

Я хочу CRLF навсегда из моей жизни, пожалуйста.

1 Ответ

12 голосов
/ 13 августа 2011

Локально, используйте git config --global core.autocrlf input.Это переведет все CRLF в LF после коммита.Я не знаю, как настроить это на gitolite, и единственная настройка окончания строки, которую я знаю в IntelliJ, - это та, которая позволяет вам указать, что использовать для новых файлов.Он находится в разделе «Настройки в стиле кода» -> «Основные» в нижней части диалогового окна.

После изменения настройки core.autocrlf вы можете очистить все плохие окончания строк, удалив (начиная с чистого рабочего дерева)все отслеживаемые файлы и делать git reset --hard, чтобы вернуть их к существованию.Тогда любые файлы с плохими окончаниями строк будут помечены как «измененные», и вы сможете зафиксировать их для исправления окончаний строк.

...