Как отключить предупреждения Git "LF будет заменен на CRLF"? - PullRequest
9 голосов
/ 25 октября 2011

Я работаю в Windows, но могу работать и в Unix, поэтому мне не нужно хранить окончания строк Windows.Я просто хочу подавить предупреждение.

Я нашел следующие вопросы о переполнении стека:
git off off "LF будет заменено CRLF" предупреждение
git, ошибки пробелов, шумоподавление и autocrlf, окончательные ответы

Я пытался:
git config core.whitespace cr-at-eol false
git config core.whitespace cr-at-eol true
git config core.whitespace cr-at-eol nowarn

Но они, похоже, ничего не делают.Кто-нибудь знает, как отключить предупреждения?

Спасибо.

Ответы [ 3 ]

7 голосов
/ 27 октября 2011

Я просто использую autocrlf=true в файле .git/config, чтобы охватить большинство ситуаций в Windows. Есть случайные предупреждения в зависимости от новых исходных файлов.

Если у вас есть специальные файлы, которые не следуют схеме, создайте для них отдельно .gitattributes, например. У меня есть файлы Matlab с *.m eol=lf.

4 голосов
/ 31 июля 2015

Я использовал этот способ:

Команда git config core.autocrlf используется для изменения способа, которым Git обрабатывает окончания строк.Требуется один аргумент.

В Windows вы просто передаете true в конфигурацию.Например:

$ git config --global core.autocrlf true    
# Configure Git on Windows to properly handle line endings

Вы также можете указать специальный флаг --global, который позволит Git использовать одинаковые настройки для окончаний строк в каждом локальном репозитории Git на вашем компьютере.

После того, как выУстановив параметр core.autocrlf и зафиксировав файл .gitattributes , вы можете обнаружить, что Git хочет зафиксировать файлы, которые вы не модифицировали.На данный момент Git стремится изменить окончания строк каждого файла для вас.

Лучший способ автоматически сконфигурировать окончания строк вашего репозитория - это сначала сделать резервную копию ваших файлов с помощью Git, удалить каждый файл в вашем репозитории (, за исключением каталога .git ), а затем восстановите все файлы сразу.Сохраните ваши текущие файлы в Git, чтобы ни одна из ваших работ не была потеряна.

$ git add . -u
$ git commit -m "Saving files before refreshing line endings"

Удалите все файлы из индекса Git.

$ git rm --cached -r .

Перепишите индекс Git, чтобы собрать всеновые окончания строк.

$ git reset --hard

Добавьте все измененные файлы обратно и подготовьте их к фиксации.Это ваш шанс проверить, какие файлы, если они есть, не были изменены.

$ git add .
# It is perfectly safe to see a lot of messages here that read
# "warning: CRLF will be replaced by LF in file."

Зафиксируйте изменения в вашем хранилище.

$ git commit -m "Normalize all the line endings"

source: https://help.github.com/articles/dealing-with-line-endings/

0 голосов
/ 15 ноября 2017

Я также занимаюсь разработкой для Windows, и поскольку наши серверы работают на Linux и весь код должен базироваться на Linux, я предпочел изменить все мои файлы на LF вместо CRLF.

из командной строки git:

git config --global core.autocrlf false

Я работаю с идеей Intellij, так что это довольно просто:

1) Файл -> Настройки -> Редактор -> Стиль кода: (для любого нового файла быть созданным)

а. Схема: по умолчанию

б. Разделитель строк: Unix и OS X (\ N)

2) отметить корень проекта -> файл -> разделитель строк -> LF unix и os x (\ n) (для существующих файлов)

Примечание: вы также можете использовать такие приложения, как dos2unix.exe или некоторые другие скрипты.

чем я использовал мою командную строку: (вы можете сделать это также из идеи)

git commit -m "bla bla"
git add .
git push origin master

с тех пор я не получил эти предупреждения

...