【Git】.ignorefileを管理途中から追加するとどうなる?

途中から.ignorefileを追加すると、以下のようなことが起こります。

  1. 既存のファイルと新しい無視リストの処理:
    • .ignorefileが追加された後、そのファイルに指定されたパターンに一致する新規のファイルは無視されます。
    • 既にバージョン管理されているファイルは、無視リストに追加してもすぐには影響を受けません。これらのファイルを無視するためには、バージョン管理から一度削除する必要があります。
  2. 既存のファイルを無視する方法:
    • .ignorefileのパターンに一致する既存のファイルを無視するには、以下の手順を行います。
      1. 該当ファイルを削除(git rm --cached <ファイル名>など)します。これはインデックスからファイルを削除しますが、実際のファイルシステム上には残ります。
      2. その後、コミットを行います。
      3. .ignorefileに追加したパターンが適用され、次回の変更からはそのファイルが無視されます。

例:

# ファイルをインデックスから削除する
git rm --cached <ファイル名>

# 例: すべてのファイルをインデックスから削除する場合では
git rm -r --cached .

# コミットする
git commit -m "Removed file from version control to respect .ignorefile"

# 無視リストが適用されるようになる
  1. 注意点:
    • .ignorefileは新しいファイルに対してのみ無視を適用します。既存のバージョン管理されているファイルを無視するためには、手動でインデックスから削除する必要があります。
    • .ignorefileの内容を誤って記述すると、意図しないファイルが無視される可能性がありますので、正確なパターンを記述することが重要です。

これらの手順に従うことで、途中から.ignorefileを追加しても問題なく無視リストを適用することができます。