Gitignoreテスター
.gitignore のルールとファイルパスのリストを貼り付けると、各ファイルが無視されるかどうか、それを決めた正確なルールと行番号、そして親ディレクトリが既に無視されているため機能しない否定ルールを確認できます。
🔒 ブラウザ内で完全に処理されます。ここに入力した内容はアップロードされません。
結果
「なぜ .gitignore の否定が効かないのか」は、Git に関する最も一般的な質問の一つです。正直な答えはほとんどの場合同じです。後ろの `!パターン` で再び含めようとしても、親ディレクトリが先のルールで既に除外されているため、ファイルを再度含めることはできません。Git は無視されたディレクトリの中へ降りて再チェックを行わないからです。このツールは、Git の実際の .gitignore マッチングアルゴリズムを——近似ではなく——再実装し、まさにその状況を捉えて説明できます。その他 Git がサポートするすべてのパターンルールにも対応します。
.gitignore ルールを一方のボックスに、ファイルパス(`dist/index.js`、`node_modules/foo/bar.js`、`.env` など、1行に1つ)をもう一方のボックスに貼り付けると、ツールが各パスを Git とまったく同じ方法で評価します。コメント行と空行はスキップし、エスケープされていない末尾のスペースは除去し、先頭の `!` は否定、先頭の `/` はルートへのアンカー(任意の深さでのマッチを抑制)、末尾の `/` はディレクトリのみに制限し、`*`、`?`、`[abc]` の文字クラス、そして `**`(ディレクトリ境界を超えてマッチ)はすべて文書化された glob ルールどおりに動作します。
重要なのは、パスのチェックが Git の無視エンジンと同じく、ルートからディレクトリ単位で下へ進む点です。各ルールに対してフルパスを単独でテストするのではありません。これにより、機能しない否定のケースを正しく検出できます。たとえば、3行目で `dist/` が無視され、後の行で `!dist/keep.js` がその中のファイルを救済しようとした場合、このツールは `dist/keep.js` を依然として無視と報告し、その理由として3行目のルールを示し、否定が影に隠れていることを別途警告します。あたかも成功したかのように振る舞うことはありません。
結果テーブルでは、テストした各パスが独立した行になり、「無視」かどうかの明快な判定、それを決めたルールのテキストと行番号、そして該当する場合には、影に隠れた否定や親ディレクトリから継承されたルールを説明する平易な注釈が表示されます。この詳細さこそが、コミットする前に混乱しがちな .gitignore を実際に理解できるものに変えます。