web-dev-qa-db-ja.com

git、空白エラー、スケルチとautocrlf、決定的な答え

Gitの空白エラーについて説明していただけますか、それらの意味、「スケルチ」とは何ですか?それについて心配する必要がありますか?

(msysgitを実行していますが、Linuxの他のユーザーと一緒に実行しています)。

autocrlfの「決定的な」答えはすでにあります here(falseに設定git config --global core.autocrlf false

45
Benjol

スケルチング は、最初は、テレコミュニケーションで使用される関数であり、それを超えると信号が通過するか通過しないしきい値を設定します。

あなたの場合、あなたが見るとき:

warning: squelched 104 whitespace errors
warning: 109 lines add whitespace errors. 

つまり、100以上のエラーメッセージを表示する代わりに、それらのエラーを表示する必要があることを警告します(ただし、出力が乱雑にならないように表示されません)。

空白文字ポリシーについて決定的な推奨事項はありませんが、なぜ最初に空白文字ポリシーが導入されたのかを特定する場合を除きます。
エディタがWindowとUnixの間でeol(行末)文字を変換しない場合、それはそれが何らかの理由で空白を自動的に追加または削除することを意味しますが、これは常に役立つわけではありません。

最初のテスト(この ブログ投稿 のように)は、ポリシーを非アクティブ化することです:

git config core.whitespace nowarn

または試す

git config core.whitespace fix

それがリベース操作を容易にするかどうかを確認します。

29
VonC

Git applyを使用しているときに「末尾の空白」エラーを修正する方法は次のとおりです。

最初に知っておくべきことは、空白エラーとは何ですか。これは core.whitespace設定ドキュメント で説明されています。基本的に、gitはいくつかの種類の空白エラーを処理します。

blank-at-eol
blank-at-eof
space-before-tab
indent-with-non-tab
tab-in-indent
cr-at-eol

Windowsスタイルの行末(CRLF)を使用してファイルにパッチを適用すると、末尾の空白エラーが発生する可能性があります。この警告を回避するには、git apply警告を表示しない:

git apply --whitespace=nowarn fix.patch

または、git設定をその場で編集できます-c)「ok git、行末のCRは今回は問題ありません」:

git -c core.whitespace=cr-at-eol apply fix.patch

permanentにしたい場合は、次のようにgit構成を編集します。

git config apply.whitespace nowarn

または:

git config core.whitespace cr-at-eol
17
Vince

その答えも検索して、git-configとgit-applyの両方のマニュアルを調べたところ、

git config apply.whitespace nowarn

現在のリポジトリの空白エラーの表示を無効にします。

すべてのリポジトリで利用できるようにするには、次のように--globalを追加します。

git config --global apply.whitespace nowarn
14
Lulisaurus