Git管理化にあるディレクトリの中に、管理外としたいファイルやディレクトリがある場合があります。そのような場合は、.gitignore ファイルを使えばインデックスに登録したくないファイル・ディレクトリを指定することができます。
.gitignoreの書式
.gitignoreは普通のテキストファイルです。そこにインデックスに登録したくないファイル・ディレクトリ名を指定します。
指定には正規表現が使えます。
- # で始まる行はコメント
- 空行は無視
- ! で始まる行は残りのパターンを否定
- スラッシュ( / )で始まる場合はルートディレクトリからを表す
- スラッシュ( / )で終わる場合はディレクトリのみを表す
- 複数マッチするパターンがある場合は最後にマッチするものが優先
.gitignoreに設定する正規表現の例
拡張子が psd のファイルすべて
*.psd
readme ファイルを無視
readme
tmp ディレクトリは全て無視
tmp/
ディレクトリを対象としたい場合は名称の最後にスラッシュ(/)を付けます。
.gitignoreは複数設置することが可能です。
優先順位は対象ファイルに階層が近い方が優先されます。
├── .gitignore ├── A/ ├── .gitignore └── A.txt # 無視しない(A/.gitignoreが適用)
上記の場合、A.txtに対しての設定は A/.gitignore が優先されます。
.gitignoreで指定する前に git add でインデックスに登録した場合
.gitignoreはインデックスに登録したくないファイルを指定するためのファイルですので、すでにインデックスに登録されている内容については影響がありません。
既にインデックスに登録されたファイルをインデックスから削除したい場合、git rm --cached を使います。下記はA.txtファイルをインデックスから削除しています。
git rm --cached A.txt
-r オプションでディレクトリ内にあるファイルすべてを再帰的に削除できます。
git rm -r --cached A/
上記コマンドはファイル自体を削除しません。ファイルも削除する場合は下記になます。
git rm A.txt