このツールについて
.gitignore ジェネレーターは、既製のテンプレートを組み合わせてリポジトリ用の .gitignore ファイルを作成します。プロジェクトで使う言語、フレームワーク、ビルドツール、ゲームエンジン、エディター、OS を選ぶと、それぞれのルールを 1 つのファイルにまとめ、セクションごとに ### 名前 ### 見出しを付けます。そのままコピーまたはダウンロードできます。
github/gitignore コレクションから約 60 のテンプレートを同梱しています。Node.js、Python、Java、Go、Rust、.NET、Swift、Laravel や Symfony などの PHP フレームワーク、Next.js、Flutter、Android、Terraform、Unity、Unreal Engine、Godot、VS Code、JetBrains 製 IDE、Vim、Emacs、macOS、Windows、Linux などです。処理はすべてブラウザー内で行われ、通信は発生しません。
使い方
- 一覧のテンプレートをクリックして追加します。検索ボックスでは一般的な別名も一致するので、「typescript」で Node.js、「intellij」で JetBrains が見つかります。
- 選択したテンプレートは選んだ順に上部にチップとして並び、ファイルもその順になります。チップをクリックすると削除、クリアで最初からやり直せます。
- プロジェクト固有の項目はカスタムルールにカンマ区切りで入力します(例:
.env, /dist, *.local)。末尾の### Custom ###セクションに追加されます。 - テンプレートの説明コメントを残すかどうか、先のテンプレートにすでにあるルールを削除するかどうかを選びます。
- 結果をコピーするかダウンロードします。ダウンロードのファイル名は
.gitignoreなので、リポジトリのルートに保存してください。
選択内容はページのアドレスに保存されるため、ブックマークや共有リンクで同じファイルを再現できます。
例
Node.js、macOS、VS Code を選び、カスタムルールに .env.local を入れてコメントをオフにすると、次のようなファイルになります(一部省略)。
### Node.js ###
logs
*.log
npm-debug.log*
…
node_modules/
…
### macOS ###
.DS_Store
.AppleDouble
.LSOverride
…
### VS Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
!*.code-workspace
*.vsix
### Custom ###
.env.local
! で始まるパターンは、前のルールで除外したものを再び含めます。ここでは共有する VS Code の設定・タスク・起動構成はリポジトリに残り、個人のエディター状態は無視されます。カスタムルールに .env を加えても結果は変わりません。Node.js テンプレートにすでに含まれているからです。
ヒント
- 個人のツールに関するルール(エディターのスワップファイル、OS のメタデータ)はグローバル除外ファイルに置けば、各プロジェクトに書かなくてもすべてのリポジトリで有効になります。
build/のように末尾にスラッシュを付けるとディレクトリだけに一致し、/buildのように先頭に付けるとリポジトリのルートに固定されます。git check-ignore -v <パス>で、どの無視ファイルのどの行がそのパスに一致したかを確認できます。- すでにコミットされた秘密情報は .gitignore では守れません。鍵を交換し、履歴を書き換えてください。
よくある質問
› テンプレートの出典は?
GitHub 公式の github/gitignore コレクションを同梱しています。このコレクションは CC0(パブリックドメイン)で公開されています。テンプレートはページに含まれており、使用時に何もダウンロードしません。
› .gitignore に追加したのにファイルが追跡されたままなのはなぜ?
.gitignore は未追跡のファイルにだけ効きます。以前コミットしたファイルは git rm --cached <ファイル>(フォルダーなら -r)でインデックスから外してコミットしてください。ファイルはディスクに残り、以後は無視されます。
› 「重複ルールを削除」は何をしますか?
多くのテンプレートは同じルールを持っています。Java と Kotlin はどちらも *.class を、C と C++ はどちらも *.o を無視します。オンにすると、同じルールは最初に現れたときだけ書き出され、ルールがすべて削除されたコメント見出しも取り除かれます。オフにすると各テンプレートを公開されたとおりに出力します。
› .gitignore はコミットすべきですか?
はい。コミットした .gitignore はリポジトリをクローンした全員に適用されます。エディターや OS など自分のマシンだけに関係するルールは、グローバル除外ファイル(git config --global core.excludesFile ~/.gitignore_global)に置くこともできます。