[解決済み] Windowsのgit「警告。LF will be replaced by CRLF"、この警告は後ろ向きなのでしょうか?
質問
環境
- Windows 7
- msysgit
時I
git commit
と表示されます。
warning: LF will be replaced by CRLF.
この警告の尾は後方にあるのでしょうか?
Windowsでファイルを編集すると、行末が
CRLF
この写真のように
そして、gitはこれを次のように変更します。
LF
を使用して、レポにコミットします。
ということで、正しい警告は
warning: CRLF will be replaced by LF.
解決方法は?
<ブロッククオートの警告を表示します。LF は CRLF に置換されます。
お使いのエディタによっては、LFを含むテキストファイルは必ずしもCRLFで保存される必要はありません。 保つ eol スタイルです。しかし、git config の設定は、それらを変更するように主張しています...。
を確認するだけです。 ここでお勧めするのは ):
git config --global core.autocrlf false
そうすることで、自動変換を回避し、なおかつ
.gitattributes
ファイル
と
core.eol
ディレクティブ
.
windows git "LFはCRLF"に置き換わります。
この警告の尾は後方にあるのでしょうか?
いいえ:あなたはWindowsを使用しており
git config
ヘルプページ
について言及しています。
この設定は
CRLF
の行末は、リポジトリに正規化された行末がなくても、作業ディレクトリに表示されます。
"に記載されているとおりです。
LFをCRLFに置き換えるGIT
"。
チェックアウト時にのみ発生するようにする
(コミットではない)、と
core.autocrlf=true
.
repo
/ \
crlf->lf lf->crlf
/ \
で述べたように XiaoPeng 's 回答 という、その警告は同じです。
警告: (チェックアウト/他のフォルダにクローンした場合、現在の
core.autocrlf
の構成で、) LF は CRLF に置き換えられます。
ファイルは、あなたの(現在の)作業ディレクトリで元の行末を持つことになります。
で述べたように
git-for-windows/git
1242号
:
このメッセージはまだ分かりにくいので、この問題のより良い説明を含むようにメッセージを拡張することができます。
file.json
ファイルを削除して再度チェックアウトした後".
注意:Git 2.19 (2018年9月) を使用する場合、以下のようになります。
core.autocrlf
,
というインチキなLF
はCRLF"に置き換えられます。
.
として
クエイラー
正しく
コメント
コミット時の変換は
LF
のみです。
その具体的な警告 "
LF will be replaced by CRLF
からのものです。
convert.c#check_safe_crlf()
:
if (checksafe == SAFE_CRLF_WARN)
warning("LF will be replaced by CRLF in %s.
The file will have its original line endings
in your working directory.", path);
else /* i.e. SAFE_CRLF_FAIL */
die("LF would be replaced by CRLF in %s", path);
によって呼び出されます。
convert.c#crlf_to_git()
によって呼び出されます。
convert.c#convert_to_git()
によって呼び出されます。
convert.c#renormalize_buffer()
.
そして、最後の
renormalize_buffer()
が呼び出されるだけです。
merge-recursive.c#blob_unchanged()
.
で、この変換が行われると思われます。
git commit
は、そのコミットがマージプロセスの一部である場合のみです。
注:Git 2.17(2018年第2四半期)では、コードのクリーンアップで説明が追加されています。
参照
コミット8462ff4
(2018年1月13日)によるものです。
トーステン・ベーガーハウゼン(
tboegi
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット 9bc89b1
, 2018年2月13日)
convert_to_git(): safe_crlf/checksafe は int conv_flags になります。
を呼び出す場合
convert_to_git()
は、その
checksafe
パラメータは
は、EOL 変換 (
CRLF --> LF --> CRLF
を使用します。
をきれいにラウンドトリップする。
さらに、行末を再正規化するかどうかも定義されている(
CRLF --> LF
)またはそのままである。
checksafeは
safe_crlf
の列挙とこれらの値。
SAFE_CRLF_FALSE: do nothing in case of EOL roundtrip errors
SAFE_CRLF_FAIL: die in case of EOL roundtrip errors
SAFE_CRLF_WARN: print a warning in case of EOL roundtrip errors
SAFE_CRLF_RENORMALIZE: change CRLF to LF
SAFE_CRLF_KEEP_CRLF: keep all line endings as they are
で導入されたリグレッションに注意してください。
8462ff4
("
convert_to_git()
:
safe_crlf/checksafe
になる
int conv_flags
", 2018-01-13, Git 2.17.0) に戻ると、Git 2.17サイクルで引き起こされた
autocrlf
を書き換えると、警告メッセージが表示されます。
を設定したにもかかわらず
safecrlf=false
.
参照
コミット 6cb0912
(2018年06月04日)によるものです。
アンソニー・ソッティレ (
asottile
)
.
(によって統合されました。
ジュニオ・C・ハマノ--。
gitster
--
で
コミット 8063ff9
, 2018年6月28日)
関連
-
[解決済み】gitが「変更をコミットするか、マージする前にstashしてください」と言うのを解決するには?
-
[解決済み] Git が追跡したファイルを .gitignore に登録したまま「忘れる」ようにするにはどうしたらいいですか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] まだプッシュされていない Git マージを元に戻す
-
[解決済み] Git でブランチからコミットを削除する
-
[解決済み] Gitで変更された複数のファイルのうち、1つのファイルだけを隠す?
-
[解決済み] ステージングされた変更を表示するにはどうしたらいいですか?
-
[解決済み] Git のローカルコミットを破棄する
-
[解決済み] git プロジェクト上の 'bin' ディレクトリを無視する
-
[解決済み] 改行設定の変更方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] masterブランチと'origin/master'が分岐している、'undiverge'ブランチの方法は?
-
[解決済み】fatal: 有効なオブジェクト名ではない: 'master'
-
[解決済み】ファイルのアンリンクに失敗しました。もう一度試してみるべきですか?
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み】gpgがデータの署名に失敗した fatal: failed to write commit object [Git 2.10.0].
-
[解決済み] LFはgitでCRLFに置き換えられます - それは何ですか、そしてそれは重要ですか?[重複]。
-
[解決済み] あなたのブランチは 'origin/master' より 3 コミット進んでいます。
-
[解決済み] fatal: EOF が早い fatal: インデックスパックが失敗した
-
[解決済み] .gitignore と "以下の追跡されていない作業ツリーファイルはチェックアウトによって上書きされるでしょう"
-
[解決済み] git update-index --assume-unchanged <file> を元に戻す。