Gitで「LFはCRLFに置き換えられます」という警告をオフにするにはどうすればよいですか


153

Gitでは、autocrlf = trueフラグを使用すると、行末が変更されたときに警告が表示されます。

警告の目的と、行末フラグをオフにする方法は理解していますが、警告自体をオフにするにはどうすればよいですか?


ここでのすべての答えは時代遅れです— gitがgitattributesを導入した後。Safecrlfはあなたの友達ですautocrlfはそうではありません!私の答えを
ルシ

回答:


279

あなたは警告をオフにすることができます

git config --global core.safecrlf false

(これにより、関数自体ではなく警告のみがオフになります。)


警告をオフにすると、gitはlfをcrlfに置き換えることができなくなりますか?@時系列
補助

3
@aidonsnous git docsから:core.safecrlfが「true」または「warn」に設定されている場合、gitは、core.autocrlfの現在の設定で変換が元に戻せるかどうかを確認します。「true」の場合、gitは元に戻せない変換を拒否します。「警告」の場合、gitは警告のみを出力しますが、元に戻せない変換を受け入れます。元に戻せない変換を拒否する必要がない場合は、core.safecrlfをfalseに設定すると警告が抑制されますが、自動変換は行われます。
ダニーリビン2018年

5

とを使用する必要がcore.autocrlf inputありcore.eol inputます。または、gitで行末をまったく変更せずautocrlf false、差分でcrlfsの強調表示を削除しないでくださいcore.whitespace cr-at-eol

お役に立てれば


通常、BATスクリプトを終了してCRLFでコミットし、SHスクリプトをLFでコミットする必要があります。
Sandburg

0

core.whitespaceオプションを探しています(詳細はgit config --helpを参照)。

このオプションは次のように設定できます。

$ git config core.whitespace cr-at-eol

0

私はこのように使用しました:

現在のファイルを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"

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


13
OPはこれらの警告が表示されないようにしようとしていたと思います。すべての行末を正規化するわけではありません。
Mike Cluck、2015

git rm --cached -r . && git reset --hardトリックをするようです、ありがとう
Shanimal

0

おかしなことに、私はここで説明したように両方の構成を適用しており、私の.gitconfigファイルには次の2行が含まれています。

[core]
       autocrlf = false
       whitespace = cr-at-eol

それでも警告を受けました。試してみると、両方の行がコメント化され、警告が実際に消えました。なぜ私が最初にそれらを置いたのか分かりません...


0

「core.safecrlf false」を設定すると機能します。ただし、値を「true」に変更した後、出力は以下のように「警告」から「致命的」に変化します。

$ git add -A
warning: LF will be replaced by CRLF in .gitignore.
The file will have its original line endings in your working directory

$ git config --global core.safecrlf false

$ git reset

$ git config --global core.safecrlf true

$ git add -A
fatal: LF would be replaced by CRLF in .gitignore

$

最近のgitでは、autocrlfよりもgitattributesを使用する方が適切です。私の答えをください。(このqに関する)すべての回答は古くて時代遅れです
Rusi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.