Подтвердить что ты не робот

Git, пробельные ошибки, шумоподавление и autocrlf, окончательные ответы

Пожалуйста, можете ли вы объяснить ошибки пробела в git, что они означают, что такое "смятие", и мне нужно беспокоиться об этом?

(Запуск msysgit, но с другими пользователями в Linux).

Уже существует "окончательный" ответ для autocrlf здесь (установите его на false git config --global core.autocrlf false )

4b9b3361

Ответ 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