Gitのリポジトリからファイルを除外する
Gitの基本的な使用方法
リポジトリのフォルダに新しいファイルが作成されたり、既存のファイルのデータが変更されたりした場合にはGitはそのことを認識し、git status
コマンドを実行するとそのようなファイルが全て表示されます。
しかしながら、ソフトウェアプロジェクトにおいてはログイン情報を格納するファイルや一時ファイルやログファイルなど、リポジトリのフォルダに含まれていてもリポジトリのファイルとしてリポジトリに含めたくないものが存在します。
そのようなファイルはリポジトリから除外することで、Gitがリポジトリのファイルとして取り扱わないようにすることができます(除外されたファイルはgit status
コマンドなどでも表示されなくなります。すなわち、そのようなファイルは存在しないものと見做されます)。
リポジトリからファイルを除外するにはリポジトリのフォルダに.gitignore
という名称のファイルを作成し、このファイルにリポジトリから除外するファイルのパターンを列挙します。パターンは複数指定することもでき、1行に1つずつ指定します(ただし、空行や#
から始まる行は無視されます)。
パターンにおいては下のような表記を使用します。
*
は0文字以上の全ての文字列にマッチします。?
は全ての文字(1文字の文字列)にマッチします。[
と]
で1文字以上の文字列を囲んだ場合には囲まれている何れかの文字にマッチします。ただし、2つの文字が-
で繋がれている場合には(文字コード上)左の文字から右の文字までの範囲の文字にマッチします。なお、囲まれている文字列に*
や?
が含まれている場合にはそれらはその文字自体を表します。[!
と]
で1文字以上の文字列を囲んだ場合には囲まれている何れかの文字以外にマッチします。ただし、2つの文字が-
で繋がれている場合には(文字コード上)左の文字から右の文字までの範囲の文字以外にマッチします。なお、囲まれている文字列に*
や?
が含まれている場合にはそれらはその文字自体を表します。*
や?
や[
の文字自体を表したい場合には代わりに\*
や\?
や\[
を使用します。- パターンの冒頭に
/
を付加した場合には子フォルダのファイルはパターンを満たしても除外されません。 - パターンの末尾に
/
を付加した場合にはパターンを満たすフォルダの全てのファイルが除外されます。 - パターンの末尾に
!
を付加した場合にはパターンを満たさないファイルが除外されます。
なお、.gitignore
ファイルに列挙されたパターンにマッチするファイルであっても、.gitignore
ファイルが作成される前にコミットされているファイルはリポジトリから除外されることはありませんので注意してください。
そのため、.gitignore
ファイルはリポジトリの最初のコミットを行う前に作成しておくべきです。
また、.gitignore
ファイル自体は特別な役割を担うファイルであるためリポジトリのファイルにはなりません。
