🙈 .gitignore 生成
言語・フレームワーク・OS・エディタのプリセットを選ぶだけで、Git で追跡から除外する
.gitignore の内容を自動で組み立てます。重複するパターンは自動で除去し、自由なカスタム追記にも対応。作った内容はそのままコピー、または
.gitignore ファイルとしてダウンロードできます。すべてブラウザ内で処理し、入力内容はどこにも送信されません。
プリセット選択
生成された .gitignore
プリセットを1つ以上選ぶか、カスタム追記を入力すると内容が表示されます。
解説
.gitignore は、Git にコミットしたくないファイルやフォルダを指定するための設定ファイルです。リポジトリの各ディレクトリに置き、書かれたパターンに一致するファイルを Git の追跡対象から除外します。典型的には、依存パッケージ(node_modules/ や vendor/)、ビルド生成物(dist/ や target/)、ログ、キャッシュ、秘密情報を含む .env などが対象です。これらは自動生成できたり共有すべきでなかったりするため、リポジトリに含めないのが定石です。本ツールは、よく使うプリセットを選ぶだけで妥当な .gitignore を組み立てます。
パターンの記法にはいくつかの約束があります。*.log のように * は任意の文字列に一致するワイルドカードです。行末の /(例: build/)はディレクトリだけに一致することを表します。先頭の /(例: /vendor/)は「その .gitignore がある階層からの相対パス」を意味し、深い階層の同名フォルダには効きません。** は複数階層をまたぐ一致(例: **/*.rs.bk)に使います。行頭の ! は否定で、いったん除外したものの一部を「例外的に含める」再包含に使います(例: .vscode/* で全除外してから !.vscode/settings.json で戻す)。
プリセットは「言語・フレームワーク」と「OS・エディタ」の2系統に分けています。前者は Node・Python・Java・PHP/Laravel・Ruby・Go・Rust など、その技術で生成される依存物やビルド成果物を除外します。後者は macOS の .DS_Store、Windows の Thumbs.db、各エディタ(VSCode・JetBrains/IntelliJ・Vim)が作る設定・スワップファイルなどを除外します。実務では「使っている言語1つ+自分の OS +自分のエディタ」を組み合わせるのが基本形です。複数を選ぶとセクション見出しを付けて結合し、プリセットをまたいで重複するパターンは自動的に1つにまとめます。
重要な注意点として、.gitignore は「まだ追跡していないファイル」にしか効きません。すでに git add や git commit で追跡済みのファイルは、後からパターンを書いても無視されず追跡され続けます。誤ってコミットしたものを本当に外すには、git rm --cached <ファイル> で追跡を解除してからコミットし直す必要があります(履歴からの完全削除はさらに別の作業が必要です)。本ツールが生成する内容は一般的な出発点です。プロジェクトの実情に合わせてカスタム追記欄で調整してください。処理はすべて端末内で完結し、入力はどこにも送信されません。
よくある質問
.gitignore はどこに置けばよいですか?
多くの場合はリポジトリのルート(.git フォルダと同じ階層)に1つ置きます。生成した内容をそのままルートの .gitignore に保存すれば、リポジトリ全体に適用されます。特定のサブフォルダだけに効かせたい場合は、そのフォルダ内に別の .gitignore を置くこともできます。
すでにコミット済みのファイルを .gitignore に書いても消えないのはなぜ?
.gitignore は「まだ追跡していないファイル」だけに効くためです。追跡済みのファイルを外すには git rm --cached <ファイル> で追跡を解除してからコミットしてください。誤って含めた秘密情報は、これだけでは過去の履歴に残る点にも注意が必要です。
末尾や先頭の「/」にはどんな意味がありますか?
行末の /(例: build/)は「ディレクトリだけに一致」を意味します。先頭の /(例: /vendor/)は「この .gitignore がある階層からの相対」を意味し、深い階層の同名フォルダには一致しません。どちらも付けない node_modules/ のような書き方は、任意の階層のそのフォルダに一致します。
複数のプリセットを選ぶと重複するパターンはどうなりますか?
自動的に1つにまとめます。たとえば Node と PHP/Laravel の両方に node_modules/ が含まれますが、生成結果では最初に登場した1回だけになります。カスタム追記に書いたパターンも、既に含まれていれば重複として除かれます。
「!」で始まる行は何ですか?
否定(再包含)のパターンです。いったん除外したものの一部を「これだけは含める」と戻すために使います。VSCode プリセットの .vscode/*(全除外)に続く !.vscode/settings.json がその例で、設定ファイルだけをチームで共有したいときに使います。順序が重要で、除外行の後に否定行を置きます。
生成された内容はそのまま使って大丈夫ですか?
一般的で妥当な出発点として使えますが、プロジェクトごとに事情は異なります。たとえば Rust の Cargo.lock はアプリではコミットし、ライブラリでは除外するのが慣例です。生成結果を確認し、必要に応じてカスタム追記欄や保存後のファイルで調整してください。
入力した内容はサーバーに送られますか?
送られません。プリセットのパターンはすべてこのツール内に組み込まれており、生成・コピー・ダウンロードはすべてブラウザ内で完結します。カスタム追記に入力した内容も外部には送信されません。オフラインでも利用できます。
ダウンロードしたファイルの名前は?
.gitignore という名前で保存されます。ブラウザによっては末尾が .txt になったり、拡張子だけのファイル名が扱いにくいことがあります。その場合はダウンロード後にファイル名を .gitignore に直してください。コピーしてエディタに貼り付ける方法でも同じ内容が得られます。