Git, пробельные ошибки, шумоподавление и autocrlf, окончательные ответы
Пожалуйста, можете ли вы объяснить ошибки пробела в git, что они означают, что такое "смятие", и мне нужно беспокоиться об этом?
(Запуск msysgit, но с другими пользователями в Linux).
Уже существует "окончательный" ответ для autocrlf здесь (установите его на false git config --global core.autocrlf false
)
Ответы
Ответ 1
Шумоподавление - это функция, используемая в телекоммуникации для установки порогового значения, выше которого сигнал или отсутствует.
В вашем случае, когда вы видите:
warning: squelched 104 whitespace errors
warning: 109 lines add whitespace errors.
Это означает: вместо отображения более 100 сообщений об ошибках он предупреждает вас, что он должен был отображать эти ошибки (но он не будет, чтобы не загромождать вывод)
У меня нет окончательных рекомендаций для политики пробелов, кроме как определить, почему они представлены в первую очередь.
Если ваш редактор не преобразует символы eol (конец строк) между Window и Unix, значит, он каким-то образом добавляет или удаляет автоматически пробелы, что не всегда полезно.
Первый тест (как в этом блоге) заключается в деактивации политики:
git config core.whitespace nowarn
или попробуйте
git config core.whitespace fix
и убедитесь, что это облегчает операции по переадресации.
Ответ 2
После поиска ответа и поиска в руководствах git -config и git -apply я обнаружил, что
git config apply.whitespace nowarn
деактивирует отображение ошибок в вашем текущем репозитории.
Чтобы сделать его доступным для всех репозиториев, просто добавьте --global
следующим образом:
git config --global apply.whitespace nowarn
Ответ 3
Вот как исправить ошибки "trailing whitespace" при использовании git apply:
Первое, что вам нужно знать: что такое ошибка пробела. Это объясняется в core.whitespace документации. В принципе, git обрабатывает несколько типов ошибок пробела:
blank-at-eol
blank-at-eof
space-before-tab
indent-with-non-tab
tab-in-indent
cr-at-eol
ошибка при пропуске может возникать при исправлении файла с завершением строки стиля окна (CRLF).
Чтобы избежать этого предупреждения, вы можете запросить git apply
не показывать предупреждение:
git apply --whitespace=nowarn fix.patch
или вы можете отредактировать git конфигурацию на лету (с помощью -c
), чтобы сказать "ok git, CR в конце строки на этот раз хороши":
git -c core.whitespace=cr-at-eol apply fix.patch
Если вы хотите сделать его постоянным, просто отредактируйте конфигурацию git следующим образом:
git config apply.whitespace nowarn
или:
git config core.whitespace cr-at-eol