環境構築
warning: LF will be replaced by CRLF
改行コードが自動変換される警告
こんな症状
WindowsとMac/Linuxで改行コードが違う。設定で自動変換を制御できるよ。
まず試す
.gitattributes で改行コードを統一する。とりあえずは警告を無視してもよい(無害)。
env
# .gitattributes を作成
# 内容:
# * text=auto
# *.js text eol=lf
# *.css text eol=lf
# または設定で制御
git config core.autocrlf input # Mac/Linux
git config core.autocrlf true # Windowsこれで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓とにかく警告を消したい
→ 無害なので無視してもよい。気になるなら下記で統一する。 - ✓チームで改行が混在
→ .gitattributes に * text=auto などを書いて統一する。 - ✓OSごとに合わせたい
→ git config core.autocrlf を Windowsは true、Mac/Linuxは input にする。
なぜ起きる?
Windowsは改行にCRLF(\r\n)、Mac/LinuxはLF(\n)を使うよ。Gitがこの違いを自動変換しようとして警告を出しているんだ。チーム開発で混在すると差分が大量に出ることがあるよ。
✕ エラーが起きるコード
git add .
# warning: LF will be replaced by CRLF in index.html.
# The file will have its original line endings in your working directory.✓ 直したコード
# .gitattributes を作成して改行コードを統一
# ファイル内容:
# * text=auto
# *.js text eol=lf
# *.css text eol=lf
# または設定で制御
git config core.autocrlf input # Mac/Linux
git config core.autocrlf true # Windows✅ 直ったか確認
意図した改行コードでコミットされ、不要な差分が出なければOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Permission denied (publickey) — SSH鍵が設定されていない
- .gitignoreが効かない・無視されない — 追跡済みファイルには効かない/パターンの書き方ミス
- refusing to merge unrelated histories — 関連のない履歴をマージしようとしている
- Your branch is behind — リモートに新しいコミットがある
- error: pathspec '...' did not match any file(s) known to git — 指定したファイル・ブランチが見つからない
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から