.gitignore の書き方
.gitignore の基本構文、よく使うパターン、テンプレートの活用方法
.gitignore の役割
.gitignore はGit に追跡させたくないファイルやディレクトリを指定するための設定ファイルです。
プロジェクトのルートディレクトリに配置するのが一般的です。
ビルド成果物、依存パッケージ、環境設定ファイル、OS 固有のファイルなど、リポジトリに含めるべきでないものを記述します。
基本的なパターン
.gitignore ではパターンを使ってファイルやディレクトリを指定します。
| パターン | 意味 |
|---|---|
* |
任意の文字列にマッチ |
** |
ディレクトリを再帰的にマッチ |
/ で始める |
ルートからの相対パス指定 |
末尾の / |
ディレクトリのみを対象 |
! で始める |
無視指定から除外(追跡対象に戻す) |
# で始める |
コメント行 |
# ログファイルをすべて無視
*.log
# ビルド出力を無視
/dist
/build
# 依存パッケージを無視
node_modules/
# 特定ファイルは追跡する
!important.logよく使うテンプレート
Node.js
node_modules/とdist/が定番です。加えて.envも必ず除外します。Python
__pycache__/、*.pyc、venv/を指定します。仮想環境ディレクトリの名前はプロジェクトによって.venv/などに変わります。Java
*.class、target/、*.jar、*.warを指定します。Maven / Gradle いずれもビルド成果物を除外します。
いずれも「ビルド成果物と依存パッケージは追跡しない」のが基本方針です。
# --- Node.js ---
node_modules/
dist/
.env
# --- Python ---
__pycache__/
*.pyc
venv/
.env
# --- Java ---
*.class
target/
*.jar
*.warグローバル .gitignore
~/.gitignore_globalを作成OS 固有のファイル(
.DS_Store、Thumbs.db)やエディタの設定ファイル(.idea/、.vscode/)などを書き込みます。ファイル名は任意です。git config --global core.excludesfileで登録git config --global core.excludesfile ~/.gitignore_globalを実行すると、すべてのリポジトリでこのファイルが自動適用されます。プロジェクトごとの
.gitignoreと併用グローバルには環境依存のファイルを、プロジェクトの
.gitignoreにはビルド成果物や依存パッケージを書くのが定石です。
# グローバル .gitignore を作成
echo ".DS_Store
Thumbs.db
*.swp
.idea/
.vscode/" > ~/.gitignore_global
# Git に登録
git config --global core.excludesfile ~/.gitignore_globalgitignore.io の活用
gitignore.io は、言語・フレームワーク・OS・エディタを選択するだけで最適な .gitignore を自動生成してくれる Web サービスです。
コマンドラインからも利用できます。
新規プロジェクトの開始時にまずこのサービスで雛形を生成し、必要に応じてカスタマイズするのが効率的です。
# コマンドラインで .gitignore を生成(curl 利用)
curl -sL https://www.toptal.com/developers/gitignore/api/node,macos,windows,linux > .gitignore
Git Ready