.gitignore ファイルで Git 管理対象外のファイルを無視する

はじめに

Git で管理対象外のファイルがある場合に、.gitignore ファイルを作成することで、対象のファイルを無視することができます。ここでは .gitignore の書き方についてまとめていきます。

目次

環境

  • OS : Windows 7 Pro 64bit
  • git : git version 2.12.2.windows.1

.gitignore ファイルについて

.gitignore ファイルは各行に除外するファイルのパターンを記述します。
既に Git によって管理されているファイルは除外されません(除外するためには対象のインデックスを削除する必要があります)。
ルートフォルダおよびサブフォルダに指定することができ、上位レベルのファイルのパターンは下位レベルのファイルによって上書きされます。
次のようなフォルダ構成の場合、root 直下の .gitignore ファイルのパターンは tmp フォルダの .gitignore ファイルのパターンによって上書きされます。

root
  ┣ .git
  ┣ public
  ┃   ┗ index.html
  ┣ tmp
  ┃   ┗ .gitignore
  ┗ .gitignore

但し、.gitignore ファイルは Git で管理されるため、ローカル環境のみで使用するファイルを除外する場合は .gitignore ファイルを使用するのではなく、.git/info/exclude ファイルにパターンを記述します。

.gitignore の書き方

.gitignore ファイルのパターンの書き方は以下の通りです。

  • 空の行は一致しないため無視されます。
  • # で始まる行は、コメントになります。
  • パターンがスラッシュで終わる場合は、フォルダとの一致になります。
  • スラッシュが含まれていない場合は、シェル glob パターンとしてマッチングされます。
  • スラッシュから始まる場合は、その .gitignore ファイルからの相対パスになります。
  • アスタリスクが2つ連続する場合は、特別な意味があります。

パターンの書き方の例

  • test.html という名前のファイルを無視する。
.gitignore
test.html
  • 拡張子が.txtのファイルを無視する。
.gitignore
*.txt
  • tmpという名前のフォルダを無視する。
.gitignore
tmp/
  • 拡張子が.cssのファイルを無視しない。
.gitignore
!*.css

空のフォルダを管理対象にする

Git は空のフォルダを管理対象にしないため、空のフォルダを Git に含める場合は .gitkeep ファイルをフォルダに含めます。

upload フォルダを管理対象に含める場合

root
  ┣ upload
  ┃   ┗ .gitkeep
  ┗ .gitignore