もくじ
.gitignore
ファイルのパス指定方法について解説します。
特定のファイルやフォルダをGitの管理対象から除外する際に、正しい記述方法を知っておくことは重要です。
本記事では、基本的な記述ルールからワイルドカードを使った応用までをわかりやすくまとめました。
.gitignore の基本
.gitignore
は、Gitに管理させたくないファイルやフォルダを指定するための設定ファイルです。
プロジェクトのルートディレクトリに配置するのが一般的です。
.gitignore の記述方法
.gitignore
ファイルは基本的に1行に1つのパターンを記述します。
# これはコメントです
example.txt
この場合、それぞれの意味は次のとおりです。
1行目の#
で始まる行は、コメントとして扱われGitの動作には影響を与えません。
.gitignore
の中で設定の意図や説明を記載するのに使用します。
2行目のexample.txt
は、パスを限定せずにGitに管理させたくないファイルを指定しています。
ファイル・フォルダの指定方法
特定のファイルを無視する
リポジトリ内にある全ての「example.txt」ファイルが無視の対象になります。
example.txt
特定のフォルダ内のファイルを無視する
リポジトリ内の「example」フォルダにある「example.txt」ファイルが無視の対象になります。
/example/example.txt
フォルダを指定してフォルダ内の全てのファイルを無視する
「example」フォルダ内の全てのファイルが無視の対象になります。
/example/
ワイルドカードを活用した指定方法
特定の拡張子のファイルを無視する
*
は任意の文字列という意味で、以下の記述の場合.log
拡張子のファイルが全て無視の対象になります。
*.log
ネストされたフォルダの特定のパターンを無視する
**
は任意のフォルダまたはファイルという意味で、以下の場合リポジトリ内のどのディレクトリ階層にあっても「example」フォルダの内の全てのファイルが無視の対象になります。
**/example/
例外の指定方法
.gitignore
では、通常の無視ルールとは逆に、特定のファイルやフォルダを例外としてGitに含めることができます。
その場合、!
を先頭に付けます。
*.txt
!important.txt
上記の場合、*.txt
により、すべての.txt
ファイルが無視されます。
しかし!important.txt
によって、important.txt
は例外としてGitに追加されます。
エスケープが必要なケース
.gitignore
では、パス名や特殊文字を正しく処理するためにエスケープが必要な場合があります。
エスケープは円マーク¥
またはバックスラッシュ\
で行うことができます。
以下に2つ例をあげます。
スペースを含むフォルダやファイル名を指定する
/My Folder/
フォルダを無視したい場合、/My\ Folder/
と指定します。
# をファイル名に含める場合
#
をファイル名に含める場合、コメントと誤認識されるためエスケープが必要です。
#sample.txt
ファイルを無視したい場合、\#sample.txt
と指定します。
.gitignoreに記述しても無視されない場合の対処法
コマンドで無視されているか確認
git check-ignore -v fileName
.gitignore
に例外を追加しても、すでに追跡されているファイルは無視されません。
そのため、以下コマンドで追跡を解除する必要があります。
git rm --cached fileName