ガイド

.gitignore の書き方

.gitignore の基本構文、よく使うパターン、テンプレートの活用方法

.gitignore の書き方 diagram

.gitignore の役割

.gitignore はGit に追跡させたくないファイルやディレクトリを指定するための設定ファイルです。

プロジェクトのルートディレクトリに配置するのが一般的です。

ビルド成果物、依存パッケージ、環境設定ファイル、OS 固有のファイルなど、リポジトリに含めるべきでないものを記述します。

基本的なパターン

.gitignore ではパターンを使ってファイルやディレクトリを指定します。

パターン 意味
* 任意の文字列にマッチ
** ディレクトリを再帰的にマッチ
/ で始める ルートからの相対パス指定
末尾の / ディレクトリのみを対象
! で始める 無視指定から除外(追跡対象に戻す)
# で始める コメント行
bash
# ログファイルをすべて無視
*.log

# ビルド出力を無視
/dist
/build

# 依存パッケージを無視
node_modules/

# 特定ファイルは追跡する
!important.log

よく使うテンプレート

  • Node.js

    node_modules/dist/ が定番です。加えて .env も必ず除外します。

  • Python

    __pycache__/*.pycvenv/ を指定します。仮想環境ディレクトリの名前はプロジェクトによって .venv/ などに変わります。

  • Java

    *.classtarget/*.jar*.war を指定します。Maven / Gradle いずれもビルド成果物を除外します。

いずれも「ビルド成果物と依存パッケージは追跡しない」のが基本方針です。

bash
# --- Node.js ---
node_modules/
dist/
.env

# --- Python ---
__pycache__/
*.pyc
venv/
.env

# --- Java ---
*.class
target/
*.jar
*.war

グローバル .gitignore

  1. ~/.gitignore_global を作成

    OS 固有のファイル(.DS_StoreThumbs.db)やエディタの設定ファイル(.idea/.vscode/)などを書き込みます。ファイル名は任意です。

  2. git config --global core.excludesfile で登録

    git config --global core.excludesfile ~/.gitignore_global を実行すると、すべてのリポジトリでこのファイルが自動適用されます。

  3. プロジェクトごとの .gitignore と併用

    グローバルには環境依存のファイルを、プロジェクトの .gitignore にはビルド成果物や依存パッケージを書くのが定石です。

bash
# グローバル .gitignore を作成
echo ".DS_Store
Thumbs.db
*.swp
.idea/
.vscode/" > ~/.gitignore_global

# Git に登録
git config --global core.excludesfile ~/.gitignore_global

gitignore.io の活用

gitignore.io は、言語・フレームワーク・OS・エディタを選択するだけで最適な .gitignore を自動生成してくれる Web サービスです。

コマンドラインからも利用できます。

新規プロジェクトの開始時にまずこのサービスで雛形を生成し、必要に応じてカスタマイズするのが効率的です。

bash
# コマンドラインで .gitignore を生成(curl 利用)
curl -sL https://www.toptal.com/developers/gitignore/api/node,macos,windows,linux > .gitignore

関連コマンド