コンテンツにスキップ

📦 .gitignore / .dockerignore ジェネレーター

言語 (Node / Python / Go / Rust / Java / PHP / Ruby など) / フレームワーク (React / Next.js / Django / Rails / Laravel) / IDE (VSCode / JetBrains / Vim) / OS (macOS / Windows / Linux) のプリセットを重ね合わせて .gitignore または .dockerignore を一発生成。重複排除・コメント保持・ライブプレビュー・コピー / ダウンロード対応。

完全無料 登録不要 ブラウザ完結 5 言語対応 ダークモード

📝 .gitignore (プレビュー)

# プリセットを 1 つ以上選択してください

📖 つまずきやすいポイント

言語・フレームワーク・IDE・OS のプリセットを重ね合わせて .gitignore または .dockerignore を生成します。重複行は除き、コメントは残します。処理はブラウザ内で完結します。ただし .gitignore は「これから追加されるファイル」にしか効きませんすでに Git が追跡しているファイルは、何を書いても無視されませんそして最も多い誤解がここです: .env を commit してから .gitignore に足しても、リポジトリからも履歴からも消えません無視することと、無かったことにすることは別です。

ケース 何が起きるか どうする
すでに追跡しているファイルには効かない Git は追跡対象になった時点で .gitignore を参照しなくなります。したがって、一度 commit した .envnode_modules・ビルド成果物は、後からルールを足しても差分に出続けますそして本当の問題は、目の前の作業ディレクトリではなく履歴ですgit rm --cached で追跡を外しても、過去のコミットの中身は消えませんgit log -p を打てば誰でも読めますし、すでに push していれば、fork・ミラー・CI のキャッシュ・各種のクローンにも同じものが残っています公開リポジトリなら、機械的に鍵を収集しているスキャナが数分で見つけます実際、公開直後の漏洩鍵が悪用されるまでの時間は分単位で観測されています まず追跡を外します: git rm --cached .env を実行し、.gitignore への追加と一緒に commit してください (--cached を付けないとファイル自体が消えます)。ディレクトリなら -r を足します。そして機密が含まれていた場合、対処はただ 1 つです: その鍵をローテーションしてください履歴の書き換え (git filter-repo) は可能ですが、それを唯一の対策にしないでください全員が clone を作り直す必要があり、しかも他人の fork や push 済みのオブジェクトには手が届きません予防としては、追加する前に止めるのが最も安上がりです: git add の前に git status を読む習慣と、gitleaksgit-secrets を pre-commit フックに入れることです。
.gitignore をそのまま .dockerignore にする この 2 つは形式が同じで目的が違います.gitignoreバージョン管理から外すものを書き、.dockerignoreビルドコンテキストに送らないものを書きます。そのまま流用すると 2 方向に壊れます。ビルドに必要なものを除外してしまうdist/.gitignore では正しい除外ですが、事前ビルドした成果物を COPY する Dockerfile では必須のディレクトリです。逆に、除外すべきものが残る.git/node_modules/ を除外しないと、コンテキストが数百 MB になりビルドが目に見えて遅くなります。しかも ホストでインストールした node_modules がイメージに入ると、プラットフォームの違うネイティブモジュールが混入して実行時に落ちます 2 つを別々に書いてください。 .dockerignore「イメージのビルドに必要なものだけを通す」という発想で作ると外しません — 最低限、.gitnode_modules.env*.log・テスト・ドキュメント・CI 設定を落とします。.env は必ず入れてくださいコンテキストに入れば COPY . . でイメージに焼き込まれ、イメージを配布した相手全員が読めます。効果の確認は簡単で、docker build の最初に出るコンテキスト転送量を見ます数 MB 以下に収まっていれば適切です。そして .dockerignore はリポジトリのルート (ビルドコンテキストの起点) にしか置けませんサブディレクトリに置いても読まれません
パターンが思ったところに当たらない 書き方の細部で意味が変わります。スラッシュを含まない build は、どの階層にある build にも当たります先頭にスラッシュを付けた /build はルート直下だけ末尾にスラッシュを付けた build/ はディレクトリだけです。最も分かりにくいのが除外の打ち消し (!) で、親ディレクトリを除外していると、その中のファイルを ! で戻すことはできませんGit は除外されたディレクトリの中身を走査しないので、そこに書いたルールは読まれもしませんnode_modules/!node_modules/mylib を並べても、後者は何も起こしませんエラーも警告も出ないので、「書いたのに効かない」という形でだけ現れます。 迷ったら git check-ignore -v <パス> を実行してください。 どのファイルの何行目のルールが効いたかを 1 行で表示しますこのコマンドを知っているかどうかで、調査時間が桁で変わります。何も出力されなければ、そのパスは無視されていません。ディレクトリの中の 1 つだけを戻したいときは、ディレクトリごとではなく中身を除外してください: node_modules/* と書いてから !node_modules/mylib を並べれば意図どおりに動きます。プリセットを重ねると行数が増えますが、量そのものは問題になりません問題になるのは「なぜこの行があるのか分からない」状態なので、プロジェクト固有の行はコメントを添えて末尾にまとめてください

無視の設定は 1 か所ではありません。Git は リポジトリの .gitignore・サブディレクトリの .gitignore.git/info/exclude・グローバル設定 (core.excludesFile) を順に見ます。ここでの使い分けには明確な基準があります: そのプロジェクトの誰にとっても不要なもの (ビルド成果物・依存ディレクトリ) はリポジトリの .gitignoreあなたの環境だけの事情 (エディタの設定・OS が作るファイル・個人的なメモ) はグローバル設定へ入れてください。.DS_StoreThumbs.db.idea/ をリポジトリの .gitignore に書くのは、厳密には他人に自分の環境を押し付けていることになります — ただし現実には全員がやっているので、チームで揃えるほうが摩擦が少ないのも事実です。最後に 空のディレクトリは Git が追跡しませんlogs/ のような空ディレクトリを残したいなら、logs/.gitkeep という空ファイルを置いてください (.gitkeep は Git の機能ではなく、ただの慣習的なファイル名です)。

📖 使い方

  1. 1
    モードを選ぶ
    上部の「.gitignore」または「.dockerignore」タブで生成するファイルの種類を選択。.dockerignore は image bloat 対策プリセット (node_modules / .git / *.log など) を優先的に含めます。
  2. 2
    スタックを選ぶ
    使う言語・フレームワーク・IDE・OS のチップをクリックして選択。複数選択するとマージ + 重複排除されたファイルが生成されます。
  3. 3
    コピー or ダウンロード
    プレビュー右上のコピーボタンで即クリップボードへ。ダウンロードボタンを押すと .gitignore / .dockerignore というファイル名で即保存できます。

❓ よくある質問

.gitignore と .dockerignore の違いは?
.gitignore は Git の追跡対象から除外するパターン。.dockerignore は Docker build context (COPY / ADD) から除外するパターンで、目的は同じ「不要ファイルの除外」でも対象が異なります。.dockerignore は特に node_modules / .git / *.log など「コンテナイメージを肥大化させる」ファイルを優先的に含めるべきです。
生成された .gitignore を既存のものに追加できますか?
はい。プレビューの内容をコピーして既存ファイル末尾に貼るか、`cat existing.gitignore generated.gitignore | sort -u > new.gitignore` のような重複排除をシェルで行ってください。
GitHub 公式の gitignore リポジトリと何が違いますか?
GitHub 公式 (github/gitignore) は単一スタックの全網羅的テンプレート (1 ファイルにつき 100+ 行) を提供します。本ツールは「実プロジェクトでよく必要になる行だけ」を絞った上で複数スタックを重ね合わせて 1 つにまとめるところが違いです。冗長性を減らしたい場合に便利です。
プリセットを増やしてほしい
フィードバックフォームからスタック名を送ってください。需要が高ければ追加します。
🐛 このツールで問題が発生しましたか?

完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。

※ 不具合再現のため、ブラウザ情報 (UA / 画面サイズ / 言語 / URL) を自動で送信します