Menu

.gitignore ジェネレーター

言語・フレームワーク・IDE・OS から、きれいな .gitignore を作成。

最終更新

クイックスタック
テンプレートを選択2 選択中

言語

フレームワーク

エディタと IDE

オペレーティングシステム

.gitignore · 37
# Node.js
node_modules/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
.pnpm-store/
.npm
.yarn-integrity

# Coverage
coverage/
*.lcov
.nyc_output

# Build output
dist/
build/

# Environment
.env
.env.local
.env.*.local

# macOS
.DS_Store
.AppleDouble
.LSOverride
Icon
._*
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

.gitignore ジェネレーターとは?

すべての Git リポジトリには .gitignore が必要です。Git が**追跡しない**べきパスのプレーンテキストリスト — ビルド成果物、依存フォルダ、IDE 設定、.DS_Store のような OS ゴミ。これが無いと最初のコミットで node_modules/.envtarget/ を巻き込み、後始末は最初から正しく設定するよりもはるかに面倒です。

エコシステムごとに無視すべきものが違い、ほとんどのプロジェクトは複数にまたがります。VS Code を使う Mac 上の典型的な Node + TypeScript アプリでも、すでに 4 種類の無視リストの和集合が必要。記憶頼りで書くと coverage/ を忘れ、.env を漏らし、JetBrains 派の同僚由来の .idea/ をうっかり混入させます。

そこで本ジェネレーターは、標準的な github/gitignore プロジェクトから厳選したテンプレート(GitHub の公式自動提案と同じソース)を束ね、スタックして使えるようにしました。チェックを入れると重複排除済みの単一 .gitignore を出力し、そのまま repo に貼り付け可能。アカウント不要、アップロード不要、すべてブラウザで完結。

.gitignore を作りながら学ぶこと

  • .gitignore のパターンは glob 構文:*.log はすべてのログを無視、build/ はフォルダを無視、!important.log は glob にマッチしても特定ファイルを再包含。
  • パターンは .gitignore の位置を基準に適用 — src/ 内の .gitignoresrc/ 配下のファイルのみに影響。
  • すでに追跡されているファイルは**遡及的に無視されない**。node_modules/ をコミット後に .gitignore に追加しても、git rm -r --cached node_modules が別途必要。

.gitignore をステップで生成する

  1. クイックスタックのプリセットを選ぶ(任意)

    プロジェクトが一般的な組み合わせ — Next.js、Django、Rails — に合致するなら、プリセットをクリックして関連する全チェックを一括で。あとは個別に追加・削除。

  2. 言語を追加

    各言語には無視すべき成果物があります:Node には node_modules/、Python には __pycache__/ と仮想環境、Java には target/.class。実際にコンパイルする言語を選択。

  3. フレームワークを追加

    言語ルールに加え、フレームワークは独自のビルドディレクトリを足します:Next.js は .next/.vercel、Django は staticfiles/db.sqlite3、Rails は tmp//storage/*。使うフレームワークにチェック。

  4. エディタと OS を追加

    **チーム**が使うエディタのテンプレートを追加(自分だけでなく)— 誰かが JetBrains や Vim を使うなら入れる。次にチームの OS:macOS は .DS_Store、Windows は Thumbs.db を残します。どちらもうっかりコミットしがち。

  5. コピーまたはダウンロード

    右パネルが結合・重複排除された出力を表示。**コピー**でリポジトリルートの .gitignore にそのまま貼り付け、または**ダウンロード**でファイルを直接保存。

.gitignore 構文 — クイックリファレンス

もっとも書くパターン。完全なリファレンス:git-scm.com/docs/gitignore

パターン意味
node_modulesツリーの任意の場所で、この正確な名前のファイルまたはフォルダを無視/node_modulessrc/node_modules の両方を捕捉
node_modules/末尾スラッシュ — **フォルダ** のみマッチ、同名ファイルは対象外誤って node_modules と名付けられたファイルは捕捉しない
/build先頭スラッシュ — .gitignore のディレクトリのみに固定/build には一致、src/build には不一致
*.logGlob — .log で終わる任意のファイルにマッチerror.logdebug.loglogs/foo.log を捕捉
!important.log否定 — 先行ルールに捕捉された特定のファイルを再包含*.log と組み合わせて 1 つのログを追跡し続ける
docs/**/draftダブルアスタリスク — docs/ の任意のサブフォルダ内の draft をマッチdocs/v1/draftdocs/2025/q1/draft を捕捉
# commentコメント — # で始まる行は Git に無視される# Node.js のような見出しでルールをグループ化

試せる .gitignore 例

最小限の Node.js + macOS .gitignore

Mac 上のすべての Node プロジェクトに必要なもの

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

macOS の同僚と共有するあらゆる Node プロジェクトの最小限。小さなサイドプロジェクトでもこれらのルールを持つべき — .DS_Storenode_modules/ がなければ無意味な競合と戦うことになる。

Python + Django + JetBrains

一般的なサーバーサイド Python スタック

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

PyCharm で開発される典型的な Django バックエンド。ローカルの db.sqlite3 が無視されている点に注目 — prod では使わず、コミットすると dev データが漏れ、同僚のフレッシュクローンが壊れる。

否定でルールを上書き

1 つを除いてすべてのログを無視

*.log !keep-me.log

1 行目はすべての .log を無視。!keep-me.log ルールがその特定ファイルを再包含する。否定は先行ルールが実際に無視したファイルにのみ機能 — 無視されたフォルダ内のファイルを再包含することはできない。

.gitignore のよくあるミス

  • あとから .gitignore を追加してコミット済みファイルが消えると期待する。消えない — 追跡解除には git rm -r --cached <パス> が必要。
  • .env を一度コミットする。1 回のコミットでも履歴にずっとシークレットが残る。最初のコミットの**前**に .env*.gitignore に入れ、漏れたシークレットはローテーションする。
  • 共有リポジトリで OS ノイズを忘れる。チームに 1 人でも macOS ユーザーがいて、リポに .DS_Store ルールがなければ、それらのファイルがすべての PR 差分に現れる。

.gitignore ジェネレーター FAQ

これらのテンプレートはどこから?
テンプレートはオープンソースの github/gitignore プロジェクトから凝縮 — GitHub が新リポ作成時に "add .gitignore" にチェックを入れると使う同じソース。各テンプレートをチームが実際に必要とするルールに削り、カテゴリーで分類した。
.gitignore ファイル自体はコミットする?
はい。.gitignore はバージョン管理されチームと共有することを意図している。何を追跡し何を追跡しないかの *契約*。例外は個人の好み(例:使うエディタ)— それはグローバルな ~/.gitignore_global に。
すでにコミットしたファイルの追跡を解除するには?
まず .gitignore に追加し、次に git rm --cached <パス>(または git rm -r --cached <フォルダ>)でディスク上のファイルを消さずにインデックスから削除。両方の変更を一緒にコミットしてチームに更新を見せる。
1 つのリポに複数の .gitignore は持てる?
はい。Git は各ディレクトリの .gitignore を探し、そのサブツリーにルールを適用。フロントとバックで無視ルールが大きく異なるモノレポで便利 — 共有の OS/エディタノイズはルートに、言語ルールは各パッケージのディレクトリに。
.gitignore と .git/info/exclude の違いは?
.gitignore はコミットされチームと共有される。.git/info/exclude はローカルクローンにしか存在せず、プッシュしたくない個人的な除外用。すべてのリポにまたがる除外にはグローバルな ~/.gitignore_global を使う。

その他の開発者ツール

Coddy programming languages illustration

Coddyでコードを学ぼう

始める