.gitignoreが効かない・反映されない原因と対処法
症状 .gitignore にファイルやディレクトリを追加したのに、git status で変更が検出され続ける。 結論:まずこれを確認 そのファイルは すでに Git に追跡(track)されている 可能性が高い .gitignore は 新規ファイルにのみ有効 で、追跡済みファイルには効かない 追跡を解除するには git rm --cached でキャッシュを削除する 操作フロー flowchart TD A[.gitignoreが効かない] --> B{対象ファイルは<br>すでに追跡されている?} B -->|Yes| C[git rm --cached で<br>追跡を解除] B -->|No| D{.gitignoreの<br>パターンは正しい?} C --> E[変更をコミット] D -->|Yes| F{.gitignoreの<br>文字コード・改行は正常?} D -->|No| G[パターンを修正] F -->|Yes| H[git check-ignore で確認] F -->|No| I[UTF-8・LFで保存し直す] G --> A I --> A H --> J{無視対象として<br>認識されている?} J -->|Yes| C J -->|No| G よくある原因 すでに追跡済み: .gitignore に追加する前にコミットしたファイルは、追跡が継続される パターンの書き方が間違っている: / の有無、* の使い方で挙動が変わる ファイル名のタイポ: .gitignore 自体のファイル名や、中のパターンにタイポがある 文字コードの問題: BOM付きUTF-8やWindows改行(CRLF)で正しく認識されない グローバル gitignore との競合: ~/.gitignore_global の設定が影響している場合がある サブディレクトリの .gitignore: 親ディレクトリの設定が子で上書きされている 否定パターンの誤用: ! で除外を解除しているつもりが効いていない 操作手順 ステップ1: 対象ファイルが追跡されているか確認する git ls-files ファイル名 🔍 チェックポイント: ファイル名が表示されれば「追跡済み」。何も表示されなければ「未追跡」 ...