Gitignore ジェネレーター

github/gitignore 公式テンプレート 200+ から言語・フレームワーク・IDE・OS を選び、重複を除去して統合した .gitignore をコピー/ダウンロード。ブラウザ内で処理。

  • ブラウザ内で処理
  • データはブラウザ外に出ません
  • 無料 · 登録不要
すべてクリアは選択、カスタムルール、検索と本ツールの保存入力を消去します。ツール内にフォーカスがあるときは Ctrl/⌘+L も同じ操作です。
統合ファイル全体をコピーします。テンプレートまたは空白以外のカスタムルールで出力ができるまで無効です。失敗した場合はそのまま再試行できます。
現在のファイル全体を UTF-8 の .gitignore として保存します。テンプレートはローカルに同梱され、この操作で取得やアップロードは行いません。
.gitignore
上のテンプレートを 1 つ以上選択すると、ここに統合された .gitignore が表示されます。
例・詳しい説明・よくある質問 実際の出力つきの例、ほかのツールとの違い、よくある質問。

.gitignore とは?

.gitignore は Git がステージング時に無視すべきパターンを列挙するファイルで、通常はビルド成果物・OS メタデータ・IDE キャッシュ・依存ディレクトリ・シークレットを対象とします。パターンは gitignore グロブ構文(*.log、build/、!keep-this.log)に従い、ディレクトリごとに適用されます。すべての Git リポジトリには 1 つ含めて、クローンの再現性を保ち、環境固有のノイズの漏洩を防ぐべきです。

よくある Stack の組み合わせ

  • フルスタック JavaScript:Node + Nextjs + macOS + JetBrains
  • Python データプロジェクト:Python + macOS + VisualStudioCode
  • モバイルネイティブ:Android + Java + Gradle + JetBrains + macOS
  • 静的サイト:Node + Jekyll + macOS + VisualStudioCode
  • Go サービス:Go + macOS + VisualStudioCode + JetBrains

マージのしくみ

選択されたテンプレートはアルファベット順にソートされて連結されます。各テンプレートには ### Name.gitignore ヘッダーが付き、どのルールがどこから来たかを追跡できます。テンプレート間で同一のルール行は最初の出現以降破棄されますが、コメントと空行はそのまま保持されます。カスタムルールは末尾の ### Custom additions セクションに置かれます。出力の先頭には ZeroTool と github/gitignore へのアトリビューションが含まれます。クリーンなファイルが必要な場合は自由に削除してください。

キュレーション済みバンドルを使う理由

リクエスト時に github/gitignore をクロールするとネットワーク遅延とレート制限のリスクが増えます。代わりにビルド時にリポジトリのスナップショットを取り、ID を重複排除して、単一の TypeScript モジュールとして同梱します — 予測可能、監査可能、ランタイム依存ゼロ。リフレッシュは同期スクリプトを手動実行して上流から新スナップショットを取り、1 つのコミットで置き換えるだけです。

例:Node + macOS + JetBrains + VS Code

JetBrains、macOS、Node、VisualStudioCode にチェックを入れ、カスタムルールに node_modules/、.env.local、coverage-html/ の 3 行を追加します。出力は 313 行で、帰属表示のヘッダー、アルファベット順の 4 テンプレート(先頭は ### JetBrains.gitignore)、最後の ### Custom additions の順です。最後のブロックには .env.local と coverage-html/ だけが残ります。カスタムの node_modules/ は、Node テンプレートにまったく同じ行があるため削除されました。

.env.local は、Node テンプレートの .env.* がすでに一致するにもかかわらず残っています。重複判定は各行の前後の空白を除いた文字列で行い、パターンが一致する範囲は比べません。

書き方の落とし穴(Git で確認)

次の .gitignore に対する git check-ignore -v(Git 2.56)の結果です。

logs/
!logs/keep.log
docs/*.pdf
build/
/secret.txt
  • logs/keep.log は logs/ によって無視されたままです。Git は除外したディレクトリの中を見ないため、否定ルールは効きません(gitignore のドキュメント)。例外を作るなら logs/ ではなく logs/* と書きます。
  • docs/*.pdf は docs/a.pdf を無視し、docs/notes/old.pdf は無視しません。途中にスラッシュがあるパターンは .gitignore のあるディレクトリが基準になり、* は / をまたぎません。
  • build/ はどの階層でも一致します(build/ と src/build/)。ただしディレクトリだけです。
  • /secret.txt はルートのファイルだけに一致し、src/secret.txt は無視されません。

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

ルールを追加しても、追跡中のファイルは追跡から外れません。インデックスから外してコミットします。ファイル自体はディスクに残ります。

git rm -r --cached node_modules/
git commit -m "Stop tracking node_modules"

過去のコミットからは消えません。秘密情報をコミットしてしまった場合はまずその値を無効化し、履歴を書き換える(git filter-repo など)なら強制プッシュと全員の再クローンが必要です。

制限

  • 同梱テンプレートは 237 個です。github/gitignore のルート(言語・フレームワーク)から 162 個、Global/(エディター、OS、ツール)から 75 個で、community/ は含みません。
  • テンプレートは同梱データを最後に更新した時点のスナップショットです。その後アップストリームで入った変更は、次の更新まで反映されません。
  • 重複削除はファイル全体で同じ行を取り除くだけで、node_modules と node_modules/ のような同等の書き方はまとめません。

FAQ

テンプレートの出典は?

すべてのテンプレートは公式 github/gitignore リポジトリ(CC0-1.0)に由来します。リポジトリルート(プログラミング言語とフレームワーク)と Global/ サブディレクトリ(IDE・OS・エディタ・ビルドツール)を同梱しています。community/ サブディレクトリは品質安定のため除外しています。

複数テンプレート選択時の重複ルールはどう処理されますか?

各ルール行は normalize(trim)した上で、選択されたテンプレート全体で重複排除されます。最初の出現が残り、以降の重複は静かに破棄されます。コメント行と空行は保持され、各セクションの出典が読み取れる状態になります。

独自ルールを追加できますか?

可能です。テンプレートの下にある「カスタムルールを追加」を展開し、プロジェクト固有のパスや glob を入力してください。最後に ### Custom additions セクションとして追加され、同じ重複排除パスに参加します。

gitignore.io との違いは?

上流データは同じ(github/gitignore)です。違いは:4 言語ローカライズ UI(English / 中文 / 日本語 / 한국어)、出典コメント付きライブプレビュー、完全クライアントサイド実行(データはブラウザを離れない)、テンプレート同梱のオフライン対応。

テンプレートはどのくらいの頻度で更新されますか?

手動の同期スクリプトで上流から新しいスナップショットを取得しコミットします。上流の変更は月数回程度なので、定期的にリフレッシュすれば十分です。gitignore 構文は安定しており、既存テンプレートが互換性を壊すことはほぼありません。