.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 です。
なるほど、すでに追跡対象の場合、明示的に除外する必要があるんだね!