環境構築
.gitignoreが効かない・無視されない
追跡済みファイルには効かない/パターンの書き方ミス
こんな症状
.gitignoreに書いたのにgit statusに出続ける。原因は「すでに追跡済みのファイルには効かない」というGitの仕様か、パターンの書き方ミスのどちらかだよ。
まず試す
git check-ignore -v ファイル名 で効いているか確認。追跡済みなら git rm -r --cached で外してコミットする。
env
# 追跡を解除してからコミット(ファイルは消えない)
git rm -r --cached node_modules
git commit -m "node_modules を追跡から外す"
# ルールが効いているか確認
git check-ignore -v node_modules/foo.jsこれで直らなければ、下の「自分のケース」を確認。
🔍 自分のケースはどれ?
- ✓過去に git add 済みのファイルが消えない
→ git rm -r --cached で追跡を解除し commit(ファイル自体は残る)。 - ✓パターンが効いていない
→ git check-ignore -v で確認。フォルダは node_modules/、拡張子は *.log のように書く。 - ✓.gitignore の置き場所
→ リポジトリのルートにあるか確認する。
なぜ起きる?
原因は2系統。(1) 一度git add / commitしたファイルは、.gitignoreに追加しても追跡され続けるよ。.gitignoreが効くのは「まだ追跡されていないファイル」だけなんだ。 (2) パターンの書き方ミス——node_modules と書くべきところを /src/node_modules のような実情に合わないパスにしている、.gitignoreをリポジトリのルート以外に置いている、など。どちらが原因かは git check-ignore -v ファイル名 で確認できるよ(何も表示されなければ無視されていない)。
✕ エラーが起きるコード
$ echo node_modules/ >> .gitignore
$ git status
# それでも node_modules 内の変更が表示される
# (過去に一度 git add . してしまっている)✓ 直したコード
# 追跡を解除してからコミット(ファイルは消えない)
$ git rm -r --cached node_modules
$ git commit -m "node_modules を追跡から外す"
# ルールが効いているかの確認
$ git check-ignore -v node_modules/foo.js✅ 直ったか確認
git status に該当ファイルが出なくなればOK。
この解決法は役立ちましたか?
🔗 関連するエラー
- Permission denied (publickey) — SSH鍵が設定されていない
- npm installが失敗する — パッケージのインストールでエラーが出る
- node_modules削除後にエラーが出る — node_modulesを削除したが再インストールしていない
- refusing to merge unrelated histories — 関連のない履歴をマージしようとしている
- Your branch is behind — リモートに新しいコミットがある
🔗 別カテゴリの関連エラー
📖 この問題を学べるレッスン
✏️ 手を動かして練習
📝 関連ブログ記事
- プログラミングのエラーメッセージの読み方 — エラーの読み方を基礎から解説
- VS Codeのインストール方法 — インストールと初期設定を図解で解説
- プログラミング初心者が最初にやるべきこと5選 — 目的を決めて環境構築から
📖 関連する用語
🚀 Gitレッスン2:はじめてのGit操作で根本解決しよう!
このエラーの背景にある仕組みを、手を動かしながら学べるレッスンがあります。完全無料・登録不要。
Gitレッスン2:はじめてのGit操作へ →