gitignore の除外が反映されない時の対処方法

最終更新:2021-05-14 by Joe

.gitignore の除外設定が反映されない時の対処方法についてです。

gitignore が反映されない原因

1すでにgit add され、追跡対象になっている

.gitignore  は、「git add 実行時に、新規にステージングしない」ためのファイルです。これが仕様ですので、すでに追跡が開始しているファイルは、gitignore に追記しただけでは、反映されません。

追跡済みのファイルを除外する方法

すでに追跡されているファイルも、git rm コマンドで、追跡を除外できます。ファイル実体を残したいときは、--cached オプションを付けましょう。

# 追跡を除外、ファイルを削除
$ git rm <FILE_NAME>


# 実際のファイルは残して、追跡だけ除外
$ git rm --cached <FILE_NAME>

なるほど、すでに追跡対象の場合、明示的に除外する必要があるんだね!

2ファイルの改行コードの問題

改行コードが「CR」のみの場合、git がうまく設定を認識しません。「LF」を加えるようにしましょう

vim .gitignore

# 値を確認
:set ff?

# 結果。mac は「CR」のみ
mac

# 値を変更して終了。
:set ff=unix
:wq

ご参考:

3.gitignore の記述が間違っている or タイプミス

凡ミスですが、単純に文字列が一致していない場合があります・・・。下記のコマンドで確認しながら、修正しましょう。

gitignore で除外ファイルをチェックするコマンド

git status にオプション「--ignored」をつけることで、gitignore の除外設定にマッチしたファイルをリストすることができます。

# .gitignore の除外ファイルをすべて表示するコマンド 
$ git status --ignored

このgit status の結果は、.gitignore を更新すればすぐに反映されますので、こちらでバシバシ確認しながら、上記1〜3をチェックしましょう。

確認するには、便利なオプションじゃな。.gitignore の更新時はこれでチェックするようにするのじゃ!

参考

こちら .gitignore の書き方もまとめました。

git Document です。