11種類の内蔵テンプレートから選ぶ仕組み
この.gitignoreジェネレーターは,手元のファイルやリポジトリを解析して設定を自動判定するツールではありません.画面に内蔵した11種類のテンプレートから,利用者が必要なものを選び,そのテキストをまとめる構成です.言語はNode.js,Python,Go,C++,Java,OSはmacOS,Windows,Linux,IDEはVSCodeとIntelliJ,その他としてUnityを用意しています.
React,Next.js,Django,Rustなどの名前で独立したテンプレートはありません.
画面を開いた直後はNode.jsとmacOSが選択されています.これは閲覧中の端末やプロジェクトを検出した結果ではなく,あらかじめ決められた初期値です.WindowsでPythonを開発している場合も自動では切り替わらないため,Node.jsとmacOSを外し,PythonとWindowsを選ぶといった調整が必要です.
テンプレート名のボタンは選択と解除を交互に切り替え,現在選ばれている名前は「選択中」の一覧にも表示されます.
「プリセット」ボタンは,Node.js,macOS,Windows,VSCodeの4件を一度に選択する固定操作です.現在の選択へ4件を追加するのではなく,その4件へ置き換えます.一般的な構成を機械的に推奨する診断ではなく,動作を試すための開始点として扱ってください.
「全クリア」は選択項目を空にしますが,出力欄そのものを完全な空文字にはしません.作成元を示すコメントと,選択名が空のSelectedコメントは残ります.
検索欄は,候補の数が多いときに画面上のボタンを探しやすくするためのフィルターです.テンプレート名またはLanguage,OS,IDE,Otherという英語カテゴリ名に対して,大文字小文字を区別しない部分一致で絞り込みます.たとえば「py」ならPythonが候補に残ります.
検索結果から見えなくなっても,すでに選択しているテンプレートは解除されず,生成済みの出力にも残ります.検索語が除外規則として追加されることもありません.
選択順にテキストを連結する生成処理
出力の先頭には,ZeroToolsで作成したことを示すコメントと,現在の選択名をカンマ区切りにしたコメントが付きます.その後に「### Node.js ###」のような見出しを置き,各テンプレートの内蔵テキストを選択配列の順番で連結します.規則を意味解析して新しいパターンへ変換するのではなく,保存済みの文字列を順番に並べる処理です.
初期状態ではNode.jsが先,macOSが後です.macOSを解除して再び選択すると,再選択した名前は配列の末尾へ追加されるため,Node.jsの後にmacOSが配置されます.複数テンプレートを選ぶときの順序は単なる表示上の都合ではありません..gitignoreでは同じ優先度にある複数のパターンが同じパスへ一致した場合,後に一致した規則が結果を変えることがあります.
生成後に例外規則を追加する場合も,どこへ置くかを意識してください.
連結後に行う整理は,連続する空行を1行へ畳むことだけです.同じ規則がNode.jsと別のテンプレートの両方に含まれていても,その行を重複削除しません.コメントを統合したり,より広いパターンへ置き換えたり,除外と再包含の矛盾を検出したりする処理もありません.「クリーンアップ済み」や「競合解決済み」の設定ではなく,選択した内蔵テキストを読みやすい間隔で並べた出力です.
出力欄は読み取り専用で,画面内から個別の規則を書き足すことはできません.既存の.gitignoreをドラッグして読み込む機能や,現在のリポジトリとマージする機能もありません.必要なテンプレートを選び,結果をコピーし,利用中のエディタで既存設定と照合しながら編集する流れを想定しています.プロジェクト固有の生成物や共有したい設定は,コピー後に追加または削除してください.
.gitignoreパターンを読むときの要点
.gitignoreの1行は,Gitが未追跡ファイルを候補から除外するときに使うパターンです.空行は可読性のための区切りになり,先頭が番号記号の行は通常コメントとして扱われます.末尾にスラッシュを置いたパターンはディレクトリに一致し,アスタリスクなどの記号は複数の名前をまとめて表します.
テンプレートにはnode_modules/,__pycache__/,*.classなど,実行環境ごとに作られやすい依存物・キャッシュ・コンパイル結果が含まれます.
先頭の感嘆符は,先に除外した対象を再び含めるための否定パターンです.たとえばVSCodeテンプレートは.vscode/*を広く除外した後,settings.json,tasks.json,launch.json,extensions.json,code-snippetsを再包含する規則を並べています.
ただし,Gitの再包含には親ディレクトリの除外状態などによる制約があります.感嘆符の行を見つけたからといって,どの構成でも必ず対象が追跡へ戻るとは限りません.
角括弧は,括弧内に並べた文字のいずれか1文字へ一致させる構文です.Unityテンプレートでは/[Ll]ibrary/,/[Tt]emp/,/[Oo]bj/,/[Bb]uild/,/[Bb]uilds/,/[Ll]ogs/,/[Uu]ser[Ss]ettings/を使い,先頭文字などの大文字・小文字の違いを表現しています.
[Library]/のように単語全体を角括弧へ入れると,「Library」というディレクトリ名を表すのではなく,括弧内のいずれか1文字に一致する別のパターンになります.本ツールのUnity先頭規則は,この違いを踏まえた形式です.
テンプレートは設定作業の開始点です.たとえばIDE設定をチームで共有するか,ローカル固有として除外するかは,開発方針によって変わります.VSCodeテンプレートは一部の設定を再包含しますが,プロジェクト側の合意と一致するとは限りません.Javaテンプレートに含まれるアーカイブ形式や,Node.jsテンプレートに含まれる環境ファイルの扱いも,配布物・ビルド工程・秘密情報の管理方法に合わせて判断してください.
既存リポジトリへ適用するときの手順
生成した出力は,「設定をコピー」ボタンでクリップボードへ書き込みます.ダウンロードファイルを作成する機能はないため,Gitリポジトリのルートに.gitignoreという名前のファイルを作るか,既存ファイルを開いて貼り付けます.既存内容を上書きする前には差分を確認し,手書きしたプロジェクト固有の規則や再包含規則を失わないようにしてください.
クリップボードへの書き込みはブラウザの権限や実行環境に依存するため,ボタン表示だけに頼らず貼り付け先でも内容を確認すると安全です.
.gitignoreへ規則を追加しても,すでにGitのインデックスへ登録されているファイルは自動では追跡解除されません.画面内ではgit rm --cached [ファイルパス]という例を案内しています.これは作業ツリーのファイルを残しながらインデックスから対象を外す用途のコマンドですが,指定範囲を誤ると次のコミット内容が想定より大きくなる場合があります.
実行前後にgit statusや差分を確認し,チームで共有する削除として妥当か判断してください.
秘密情報を含むファイルは,.gitignoreへ追加するだけで過去のコミットから消えるわけではありません.すでに認証情報をコミットした可能性がある場合は,除外設定とは別に,鍵やトークンの失効・再発行と履歴の扱いを検討する必要があります.このジェネレーターは秘密情報を検出せず,セキュリティ用パターンをすべての出力へ自動挿入することもありません.
テンプレート内に.envなどの規則がある場合でも,名称の異なる設定ファイルまで網羅しているとは限りません.
規則が期待どおりに働くかを確かめるには,対象リポジトリでGitの状態を確認します.除外したい未追跡ファイルが候補へ出なくなったか,反対に共有すべき設定が隠れていないかを見ます.パターンの由来を調べる必要がある場合は,Gitが提供する確認用コマンドや公式gitignore文書も役立ちます.ツールのプレビューは生成テキストを表示するだけで,実際のファイルツリーに対する一致結果は計算しません.
テンプレートを組み合わせる具体例
Node.jsをmacOS上でVSCodeから開発するなら,初期選択のNode.jsとmacOSへVSCodeを追加できます.Node.js側には依存ディレクトリ,ログ,ビルド出力,ローカル環境ファイルなどの規則があり,macOS側には.DS_StoreなどのOS生成物,VSCode側にはワークスペース設定に関する除外と再包含が入ります.
3種類をまとめることで入力作業は減りますが,同じプロジェクトで共有したい設定まで除外していないかは別途確認します.
PythonとWindowsを組み合わせる場合は,初期選択を一度全クリアしてから2件を選ぶと,Selectedコメントにもその2件だけが表示されます.Pythonテンプレートはバイトコード,仮想環境,テストやカバレッジの生成物,各種ツールのキャッシュなどを含みます.
Windowsテンプレートはサムネイルキャッシュ,Desktop.ini,ごみ箱用ディレクトリ,ショートカットなどを含みます.使用しているパッケージ管理方法によっては,ロックファイルを追跡するかどうかをテンプレート内コメントとプロジェクト方針の両方から判断してください.
UnityではUnityテンプレートだけでなく,利用OSやIDEのテンプレートを追加する選択肢があります.ただし,本ツールのUnityテンプレートはGitHub上の長大なUnity.gitignoreを丸ごと同期する仕組みではなく,内蔵された規則セットです.Unityや関連パッケージの構成は更新されるため,公式の推奨例,チームの既存リポジトリ,現在生成されるディレクトリを比較してください.
「Unityを選んだので今後の生成物もすべて除外される」とは限りません.
モノレポで複数言語を使う場合も,選択した全文をリポジトリ直下へ単純連結します.サブディレクトリごとに規則を自動で限定したり,パスの先頭へ各アプリ名を補ったりはしません.Node.jsとPythonを選べば両方の一般的な規則がルート基準の候補になります.特定アプリの配下だけに効かせたい規則は,コピー後にパスを調整するか,各階層へ置く.gitignoreの設計を検討してください.
コピー前に行う最終確認
最初に,画面の「選択中」と出力先頭のSelectedコメントが,実際のプロジェクト構成と一致しているか確認します.次に,各見出しの下にある規則を読み,ビルド成果物として残すファイル,サンプルとして共有する環境設定,IDEのチーム設定などが誤って除外されないかを見ます.最後に,同じパスへ一致しそうな広いパターンと感嘆符の例外がある場合は,出力順も確認します.
本ツールが自動で保証しない範囲を理解することも重要です.重複除去,構文検証,実ファイルとの照合,既存設定とのマージ,秘密情報の検出,リポジトリへの書き込みは行いません.出力欄へ直接カスタム規則を入力する機能や,.gitignoreとして保存するダウンロード機能もありません.候補を素早く集めることと,設定の正しさを検証することは別の工程です.
テンプレートの選択,文字列の連結,空行の整理はブラウザ上の状態として行われ,この生成処理のために.gitignoreファイルをアップロードする入力欄はありません.ただし,これはページ全体で通信が一切起きないという意味ではありません.ページ表示に必要なファイルの取得,アクセス解析,広告などの通信が発生する場合があります.
また,ページを再読み込みすると現在の選択は初期状態へ戻るため,必要な出力は事前にコピーしてください.
生成結果は完成品として無条件に採用するのではなく,プロジェクトに合わせた草案として使うと効果的です.11種類から該当項目を選ぶ,不要な項目を外す,出力をコピーする,既存規則と統合する,Gitで一致結果を確認する,という順序で進めれば,ツールが担当する単純な連結と,開発者が担当する判断の境界を明確にできます.