【完全ガイド】.gitignoreの作成・書き方・テンプレートを紹介!

【完全ガイド】.gitignoreの作成・書き方・テンプレートを紹介!

当ページのリンクには広告が含まれています。

記事の文字数:5097

本記事では、Gitで不要なファイルを管理対象から除外するための.gitignoreファイルの書き方を徹底解説します。基本構文のルール、各開発言語やIDEごとの具体的なテンプレート例、GitHub公式テンプレートの活用方法、さらにはよくあるミスとその対処法まで網羅的に説明します。


スポンサーリンク

Gitでバージョン管理を行う際に欠かせないのが.gitignoreファイルです。このファイルは、プロジェクトに不要なファイルや、管理対象に含めるべきでないファイルをGitの追跡対象から除外する役割を持っています。

本記事では「gitignore 書き方」をキーワードに、基本的な構文から、実践的な使い方、応用的な活用法まで、具体例を交えながら詳しく解説していきます。この記事を読むことで、あなたのプロジェクトがよりクリーンで管理しやすくなり、チーム開発でも安心してファイル共有ができるようになります。

.gitignoreとは

📝
.gitignoreとは?

🎯 目的

Gitに「無視するファイル」を明示的に指定するためのファイル

🧹 効果

不要なファイルをリポジトリから除外してクリーンに保つ

👥 メリット

チーム開発でのトラブル回避・セキュリティ向上

.gitignoreはGitに「無視するファイルやディレクトリを明示的に指定する」ためのファイルです。この設定をすることで、不要なファイルがリポジトリに含まれることを防ぐことができ、コミット履歴やリポジトリ構造をきれいに保つことができます。通常、以下のようなファイルを無視対象に指定します。

  • コンパイルやビルド時に生成されるファイル
  • IDEやエディタが生成する設定ファイル、キャッシュファイル
  • 実行時に生成されるログファイル
  • 中間生成物や一時ファイル
  • 環境変数ファイルなど、個人情報・機密情報を含むファイル
  • OSやツールが自動で作成する隠しファイル

これらを無視することで、不要な差分の発生を防ぎ、共同開発時のトラブルを回避することができます。

.gitignoreが必要な理由

開発中には、次のような「バージョン管理に含めるべきではないファイル」が自動的に作成されます。

  • 一時ファイル
  • ビルド生成物
  • ログファイル
  • 設定ファイル(例:APIキーを含む.env
  • OS依存ファイル(例:.DS_StoreThumbs.db

こういったファイルを.gitignoreで除外することで、次のようなメリットがあります。

  • リポジトリの肥大化を防ぐ 不要なファイルを除外することで、リポジトリのサイズが膨らまず、クローンやフェッチが高速になります。

  • コミットログが見やすくなる 不要な変更が履歴に残らないため、必要な変更だけを簡単に確認できます。

  • チーム開発がスムーズになる 他の開発者との間で、不要な差分やコンフリクトが発生しにくくなります。

  • セキュリティ向上 機密情報の漏えいを防ぎ、意図せずAPIキーなどを公開してしまうリスクを減らせます。

.gitignoreの基本ルールと設定方法

.gitignoreの作成場所と影響範囲

  • .gitignoreは、無視したいファイルが存在するフォルダに作成します。
  • 有効範囲は、そのファイルが置かれたディレクトリ配下全体です。
  • リポジトリ内には複数の.gitignoreを置くことができます。

.gitignoreのパスの指定方法

  • 記述するパスは、その.gitignoreが存在するフォルダからの相対パスになります。
  • 絶対パスの指定はできません。

.gitignore作成時の注意点

  • Windowsのメモ帳では拡張子のみのファイル(.gitignore)を作れない場合があります。

  • その場合は、以下のように作成してください。

    • コマンドで作成:

      • macOS/Linux: touch .gitignore
      • Windows: type nul > .gitignore
    • 他のエディタ(Visual Studio Code など)を使う。

.gitignoreの基本構文

.gitignoreでは「グロブパターン」という記法でファイルを指定します。

記法意味
#コメント行。Gitは無視する。# これはコメントです
空行無視。
*任意の文字列にマッチ。*.log → 全てのログファイル
/ルートまたは現在のディレクトリからのパス。/debug.log → ルート限定
bin/特定ディレクトリとその中身を無視。
?任意の1文字にマッチ。file?.txtfile1.txt
[abc]指定した文字のいずれかにマッチ。file[12].txtfile1.txt, file2.txt
[!abc]指定した文字以外にマッチ。
**0個以上のディレクトリを含むパスにマッチ。**/logs → どこにあるlogsも対象
!否定パターン。無視ルールの例外を指定。!important.txt → 無視しない

.gitignoreは非常にシンプルで、1行ずつパターンを記述するだけで適用されます。特別なプログラミング知識は不要で、基本的なルールさえ覚えれば誰でも簡単に使いこなすことができます。

.gitignoreファイルの一般的な記述例

# 特定のディレクトリを無視
node_modules/
# 拡張子が.logのファイルを無視
*.log
# ビルドディレクトリを無視
build/
dist/
# 環境変数ファイルを無視
secret.env

例:否定パターン

# すべてのlogファイルを無視するが、important.logは除外
*.log
!important.log

複数の.gitignoreと優先順位

複数の.gitignoreファイルが存在する場合、より深い階層のものが優先されます。 Gitは以下の順で無視設定を判定します。(優先度の高い順)

    1. コマンドライン指定(例: git add -f <ファイル>
       →-fオプションでGitが通常無視するファイルを、強制的にステージングエリアに追加する
    1. 各フォルダの.gitignore
    1. $GIT_DIR/info/exclude(リポジトリ専用の除外ファイル)
    1. グローバル除外ファイル(例: ~/.gitignore_global

※グローバル無視ファイルは、次のコマンドで設定できます。

実行コマンド
git config --global core.excludesFile ~/.gitignore_global

.gitignore実践で役立つ便利な知識

💡
便利なコマンド・テクニック

🔍 無視ルールの確認

git check-ignore -v ファイル名

どのパターンで無視されているかを確認

📁 空ディレクトリ管理

.gitkeep ファイルを配置

空のディレクトリ構造を保持

⚙️ グローバル設定

git config --global core.excludesFile ~/.gitignore_global

OS依存ファイルをグローバルで無視

  • 空のディレクトリ管理(.gitkeep Gitは空のディレクトリを管理できないため、空ディレクトリを保持したい場合は.gitkeepファイル(中身は空)を配置します。

  • ディレクトリ構造だけ管理する書き方

/storage/**
!/storage/**/
!/storage/**/.gitkeep

この記述で、ディレクトリ構造と.gitkeepのみが管理対象になります。

  • 無視ルールの確認方法
実行コマンド
git check-ignore -v <ファイル名>

特定のファイルが無視される原因となっているパターンと、そのパターンが記述されているファイルおよび行番号を特定できます。

  • 無視対象ファイルの強制コミット
Terminal window
git add -f <ファイル名>

※できれば否定パターンを使って明示的に管理した方が安全です。

GitHubの公開テンプレートを活用しよう

🐙 GitHub公式テンプレートを活用しよう!

GitHub公式のgitignoreテンプレート集を活用することで、
業界標準の.gitignoreを簡単に作成できます

1. 検索
プロジェクトに合う
テンプレートを探す
2. ダウンロード
ファイルを取得して
.gitignoreに追加
3. カスタマイズ
プロジェクト固有の
設定を追記

GitHubは公式に「gitignore テンプレート集」を公開しており、Node.js、Python、Java、C++、Unityなど、多種多様な開発環境に対応したサンプルファイルが多数用意されています。これらのテンプレートは業界標準とも言える内容が反映されており、ほとんどの場合、これを元にプロジェクトに合うように微調整すれば十分です。わざわざ一から作成する必要はなく、GitHubのテンプレートを活用することで、迅速に最適な.gitignoreを準備することができます。

テンプレートの具体的な活用法

  1. GitHubのテンプレートからプロジェクトに合うものを検索
  2. ファイルをダウンロードして.gitignoreとしてリポジトリに追加
  3. プロジェクト固有のビルドフォルダや秘密ファイルを追記

これだけで簡単に実用的な.gitignoreが作成できます。

よく使う.gitignoreテンプレート

Node.jsプロジェクト

Node.jsでは大量の依存ライブラリがnode_modulesに保存されるため、これを必ず無視します。

node_modules/
.env
npm-debug.log
package-lock.json

Pythonプロジェクト

Pythonではキャッシュファイルや仮想環境ディレクトリを無視するのが基本です。

__pycache__/
*.pyc
.env
venv/
debug.log

Javaプロジェクト

Javaはコンパイルで中間生成物が多く発生するため、ビルド成果物を除外する必要があります。

*.class
*.jar
*.war
*.ear
target/
build/

IDE別設定ファイル

IDEが自動生成する設定ファイルやワークスペースデータはプロジェクトごとに異なるため、適切に無視しましょう。

VSCode
.vscode/
*.code-workspace
IntelliJ IDEA
.idea/
*.iml
out/

.gitignoreのよくあるミスと注意点

⚠️
よくあるミスと注意点

🔍 すでに追跡されているファイル

すでにGitが管理しているファイルは.gitignoreを追加しても無視されません

git rm --cached ファイル名

📁 ディレクトリの部分復帰

ディレクトリ全体を無視した場合、その中の一部ファイルだけを含めることは基本できません

🌍 OS依存ファイル

.DS_Store、Thumbs.dbなどはプロジェクトではなくグローバル設定で無視する

  • すでにGitの管理下に入っているファイルは、.gitignoreを追加しても無視されません。対象ファイルを一度git rm --cachedでインデックスから削除する必要があります。
  • パターンの書き方を間違えると、意図しないファイルが追跡対象になってしまう場合があります。
  • .gitignoreはリポジトリのルートディレクトリに設置するのが基本ですが、サブディレクトリに個別で設置することも可能です。

すでに追跡されているファイルは無視できない

.gitignore未追跡のファイルにのみ有効です。 すでにGitが管理しているファイルは、.gitignoreを追加しても無視されません。その場合、以下のコマンドを実行してインデックスからファイルを削除しましょう。

Terminal window
git rm --cached <ファイル名>

--cachedを付けないとローカルのファイルも削除されるので注意。

除外したディレクトリは部分的に復帰できない

ディレクトリ全体を無視した場合、その中の一部のファイルだけを含めることは基本できません。

NG例:

/hoge/
!/hoge/fuga.txt

この場合、fuga.txtは追跡されません。

正しい書き方:

/hoge/*
!/hoge/fuga.txt

OS依存ファイルはグローバルで無視する

OSが自動で作成するファイル(例:.DS_StoreThumbs.db)は、プロジェクトの.gitignoreではなく、グローバル除外ファイル(例: ~/.gitignore_global) に記載するのが推奨されます。

シンボリックリンクの扱い

.gitignoreは、リンク先ファイルのパスに対して適用されます。 シンボリックリンク自体は無視対象にはなりません。

反映されない場合の対処方法

.gitignoreを正しく記述したにも関わらず、意図したファイルが無視されない場合は、以下の手順を試してみましょう。 その後、再度コミットすることで、無視設定が適用されます。

パターンの書き方を確認する

意図した書き方になっているか再確認しましょう。特に以下をチェックします。

  • スペルミスがないか
  • 相対パスと絶対パスの指定が正しいか
  • サブディレクトリを意識したパターンになっているか
  • 否定パターン(!)を誤って適用していないか

サブディレクトリの.gitignoreを確認する

場合によっては、上位の.gitignoreと下位の.gitignoreが競合していることがあります。ルールの適用順を確認し、意図しない上書きが発生していないか確認してください。

コマンドで確認する

Gitが現在どのファイルを追跡しているかは、次のコマンドで確認できます。

実行コマンド
git status

無視されていないファイルが表示されている場合は、.gitignoreの設定ミスか、キャッシュが残っていることが原因です。

.gitignoreまとめ

.gitignore活用のまとめ
📚 テンプレート活用
GitHubの公式テンプレートを積極的に使用する
🎯 パターン管理
ファイル単位ではなくパターンで管理する
💬 コメント記入
意図を明示するためのコメントを追加
🔍 動作確認
変更後は必ずgit statusで確認
👥 チーム統一
チーム全体でルールを統一する
🌍 適切な分離
プロジェクトとグローバルで管理対象を分ける
  • 言語別の.gitignoreテンプレート(GitHubなどで公開)を積極的に活用する。
  • ファイル単位ではなく、パターンで管理するのが理想。
  • コメントを適宜記入し、意図を明示する。
  • .gitignoreの変更後は必ずgit statusで動作確認をする。
  • チーム全体で.gitignoreルールを統一することが重要。
  • プロジェクトとグローバルで管理する対象をきちんと分ける。

.gitignoreを正しく書くことは、Gitリポジトリを清潔に保ち、無駄なファイルを排除し、チーム全体の作業効率を大幅に向上させるための重要なスキルです。プロジェクトの種類や開発環境に応じて適切に設定することで、不要なトラブルやファイル管理の手間を最小限に抑えることができます。

GitHubのテンプレートを積極的に活用し、自分に合った最適な.gitignoreを作成して、よりスマートな開発を実現しましょう。

Gitユーザにお勧めの本

いちばんやさしい
Git&GitHubの教本 第3版
人気講師が教える
バージョン管理&共有入門
「いちばんやさしい教本」シリーズ

新品価格
¥2,178 から
(2025/5/10 20:56時点)

改訂2版
わかばちゃんと学ぶ Git使い方入門

新品価格
¥2,208 から
(2025/5/10 20:58時点)

独習Git

新品価格
¥3,247 から
(2025/5/10 20:59時点)


以上で本記事の解説を終わります。
よいITライフを!
Scroll to Top