Git管理をしていると、.gitignore
ファイルで「特定のディレクトリのみ」や「特定のファイルのみ」をバージョン管理対象とし、それ以外は除外したいケースが出てきます。
また、フォルダごと無視したい場合や、なぜか指定が反映されない場合もあるでしょう。
ここでは、その基本設定と注意点を整理しておきます。
前提のディレクトリ構成例
例えば、以下のような構成を想定します。
└── public
├── css (サブディレクトリ複数あり)
├── img (サブディレクトリ複数あり)
├── index.html
ここで、public
フォルダ配下は基本的にGit管理対象外とし、css
ディレクトリのみバージョン管理したいとしましょう。
.gitignore設定例
public/.gitignore
を作成して、下記のように記述します。
/*
!/css
設定の意味
/*
:public
内の全てを無視する!/css
:css
フォルダのみ無視対象から除外する(=管理対象とする)
このように、まずは全てを無視しておいて、特定のディレクトリ(ここではcss
)のみを例外的に追跡対象とします。
「/」の付け忘れに注意
/*
と書くことで public
直下全てを対象にできます。*
だけだと、期待通りに反映されないことがあるので、ルート相対パスを意識して/
を付けるようにしましょう。.gitignore
では記述するファイル・フォルダがどの階層にあるかに注意が必要です。
特定のファイルのみ管理したい場合
「gitignore 特定のファイルのみ」を管理下に置きたい場合も同様のアプローチが可能です。
例えば、public
配下全てを無視しつつ、index.html
だけは管理対象としたいとします。
その場合は以下のようになります。
/*
!/index.html
このように、特定のファイルのみを例外として指定できます。
フォルダごと無視、または特定のフォルダごと管理したい場合
フォルダごと管理から外したい場合は、/フォルダ名/
のように指定します。
逆に、他を無視してそのフォルダごと管理したい場合は、上記の除外指定 (!
) と組み合わせます。
/*
!/フォルダ名
上記は特定のフォルダのみを管理対象にする基本形です。
反映されない場合のチェックポイント
.gitignore
の設定がうまく「反映されない」という場合は、以下を確認してみてください。
- キャッシュのクリア:既にGit管理下にあったファイルは、
.gitignore
を後から変更しても反映されないことがあります。git rm -r --cached .
コマンドでキャッシュをクリアして再度確認します。
- 相対パス・絶対パスの確認:
/
の付け忘れや、.gitignore
ファイルの置き場所が正しいかを再度見直します。 - 複数の
.gitignore
:リポジトリ直下の.gitignore
とサブディレクトリ内の.gitignore
の優先順位が影響する場合があります。
どの階層で設定すべきか整理してから記述してください。
以上が、.gitignore
で「特定のディレクトリのみ」や「特定のファイルのみ」を管理対象にする方法、フォルダごとの設定、そして反映されない場合の対処法です。
こうした設定パターンを覚えておくことで、プロジェクトごとに柔軟なGit管理が可能になります。