【初心者向け】.gitignore に書いたのに無視されない原因と対処法
はじめに
Gitで開発しているときに、.gitignore にファイルやフォルダを追加したにもかかわらず、
なぜか無視されずにコミット対象になってしまうことはありませんか?
私自身も初めてこの現象に遭遇したとき、
「`.gitignore に書いたのになぜ?」と混乱した経験があります。
本記事では、「.gitignore に書いたのに無視される」という現象の原因を整理し、
どのように対処すればよいかを順を追って解説します。
.gitignore の基本的な仕組み
.gitignore ファイルは、Gitに
「このファイルやフォルダは管理しなくていい」
と伝えるための設定ファイルです。
例えば、以下のように .gitignore に書けば:
.env
*.log
/tmp/
-
.envファイル -
.logで終わるファイル -
tmpフォルダ配下すべて
はGitの管理対象外になるはずです。
しかし、例外が存在します。
無視されない原因と対処法
無視されない原因:すでに Git に追跡されている
.gitignore に追加する前に、 git add されていたファイルは無視されません。
Gitが「すでに管理しているもの」として扱っているためです。
対処法:git rm --cached で追跡を解除する
すでに管理対象とされているファイルを .gitignore の対象にするには、
一度 Gitの管理対象から外す必要があります。
そのために使うのが以下のコマンドです。
git rm --cached ファイル名
例:
git rm --cached .env
これで .env は Git の管理対象から外れ、.gitignore に従って無視されるようになります。
※ --cached を付けることで、ローカルファイルは削除されず、Git上だけから除外される点に注意しましょう。
対処法:フォルダごと除外したいとき
git rm --cached -r フォルダ名
例:
git rm --cached -r tmp/
-r をつけることで、フォルダ単位でGitの管理対象外にすることできます。
よくあるつまずきと注意点
-
.gitignoreに書くだけでは反映されないこともある
→ すでにGitに追加されているファイルは、手動で管理対象から外す必要があります。 -
チーム開発では
.gitignoreを早めに整備しましょう
→ 最初にルールを決めておくことで、うっかりGitに管理されてしまうトラブルを防げます。
まとめ
| よくある状況 | 対処方法 |
|---|---|
.gitignore に書いたのに無視されない |
git rm --cached ファイル名 |
| フォルダごと無視されない | git rm --cached -r フォルダ名 |
| ファイルはGitから外したいが、ローカルには残したい |
--cached を忘れずに |
.gitignore の理解はトラブル防止の第一歩となります。
.gitignore に書いたのに無視されない問題は、Gitの学習初期で特につまずきやすいポイントです。
本記事が参考になれば幸いです。
Discussion