web-dev-qa-db-ja.com

Git、ファイルをリポジトリに追加すると、LF-> CRLFで致命的なエラーが発生する

私はgitが初めてなので、助けが必要です。 Windowsでmsysgitを使用しています。

コマンドgit add [folderName]を実行すると、応答が返されます。

fatal: LF would be replaced by CRLF in [.css file or .js file]

そして、コミットしようとしても何も起こりません。

$ git commit
# On branch master
#
# Initial commit
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       so01/
nothing added to commit but untracked files present (use "git add" to track)

これらのcss/jsファイルの一部はネットからダウンロードされたので、LFを持っている理由だと思います。ファイルを開いてコンテンツを切り取り/貼り付けすると、次のファイルでエラーが発生します。

どんな助けも大歓迎です。

編集

core.autocrlfをfalseに設定すると問題は解決するようですが、このオプションをfalseに設定しないように多くの記事を読んでいます。

誰かが私にこの状況でどのような問題が発生する可能性があるかを知ることができますか?

40
user619656

コードエディタを信頼して、行末を操作します。自動crlfはfalseでなければなりません。ソース管理をあまりにも賢くしないでください。行末を変更するためにソース管理ツールを使用する必要がない場合は、そうしないでください。これは痛いでしょう。

受け入れられた答えから繰り返します:「ネイティブeolに対処する必要がある特定の治療法が見られない限り、autocrlfをfalseのままにしておく方が良いでしょう。」

また、autocrlfのセクションの最後にあるprogitブックから:

「Windowsのみのプロジェクトを行うWindowsプログラマーは、この機能をオフにして、構成値をfalseに設定することで、リポジトリに改行を記録できます。」

私ができる他の唯一の助けは、あなたが他のルートをとるなら、vim -bこれは、MSysGitのCRなどの特殊文字を表示し、git show HEAD:path/to/your/file.txt which should gitが保存した方法でファイルを表示します。

セットする core.whitespace cr-at-eol問題のある可能性のある空白としてCRを強調表示しないパッチと差分を作成します。

手間をかける価値はありません。そのまま保管します。

22
Adam Dymitruk

これは非常に新しいため、core.autocrlfをfalseに設定しても意味がありません。そのため、他の初心者の場合は、.gitフォルダー内の構成ファイルに移動して以下を追加します。

[core]
    autocrlf = false

[コア]見出しの下。

24
sigmapi13

crlfcore.eol設定を使用してファイルを内部に保存するようにGitを設定したため、問題が発生している可能性があります。ファイルを追加すると、Gitはファイルを内部形式に変更することを警告しています。

Gitはlfの行末で最適に動作するため、可能であれば常にcore.eol = lfで動作します。

これは、core.autocrlfをいつ使用するかを説明する必要があります Gitでcore.autocrlf = trueを使用する理由は?

core.safecrlfを使用することもできます。設定の詳細については、 git config --help を確認してください。

6
m0tive

フォーマットのgit自動検出は非常にうまく機能します。したがって、core.autocrlf=trueはWindowsでは非常に良いアイデアです。

git config --global core.safecrlf=falseと言うgit:ねえ、私のwrong行末(LFのみ)をWindows行末(CRLF)に変換してください。それで私を悩ます。

したがって、core.safecrlfを実際に無効にする必要があります。

長い回答: https://stackoverflow.com/a/15471083/873282

0
koppor