.gitignoreルール検証
ルートの.gitignoreの内容と、ファイル・ディレクトリの相対パス一覧を入力し、各パスがGitの無視対象になるかと、適用されたルール・行番号を表示するツールです。ワイルドカード、ディレクトリ指定、否定ルール、ルールの順序、親ディレクトリが除外された場合の挙動を確認できます。すべてブラウザ内で処理されます。
- リポジトリのルートにある .gitignore 1つと、ルートからの相対パスで判定します。サブディレクトリの .gitignore・.git/info/exclude・グローバル設定(core.excludesFile)は対象外です。
- パスは未追跡のファイルとして判定します。すでにコミット済み(追跡済み)のファイルには .gitignore が適用されないため、除外するには git rm --cached が必要です。
- ディレクトリは末尾に / を付けて入力してください(例: dist/)。大文字・小文字は区別します。[[:alpha:]] のような文字クラス名には対応していません。
判定結果
判定するパスを入力すると、無視対象かどうかと理由が表示されます。
使い方
- 左に.gitignoreの内容を貼り付けるか、ファイルを読み込みます。
- 右に判定したいパスを1行に1つ入力します。ディレクトリは末尾に / を付けます(例: dist/)。
- パスごとに「無視される」「無視されない」と、適用されたルールの行番号が表示されます。
- 親ディレクトリの除外によって否定ルールが効かない場合は、その理由も表示されます。
このツールについて
ビルド成果物は除外しつつ特定の設定ファイルだけ残したい、といった.gitignoreは、否定ルール(!)や順序の扱いで意図どおりにならないことがよくあります。このツールでは、各パスにどのルールが最後に一致したかを行番号付きで確認できます。
Gitは除外されたディレクトリの中を探索しないため、dist/ を除外すると !dist/keep.json のような否定ルールは効きません。この場合は親ディレクトリが原因であることを表示します。dist/** のようにディレクトリの中身を除外すれば、否定ルールで特定のファイルを戻せます。
入力したパスは未追跡のファイルとして判定します。すでに追跡されているファイルには.gitignoreが適用されません。サブディレクトリの.gitignoreやグローバル設定は初期版の対象外です。
ルールを「*.log」、次の行を「!keep.log」とし、パスにdebug.logとkeep.logを入力すると、debug.logは無視され、keep.logは無視されません。後の否定ルールで例外が戻ることと、判定に使われた行番号をセットで確認できます。
入力するのはリポジトリからの相対パスで、ディレクトリには末尾の / が必要です。実際のGit管理状態を読み取る機能はないため、結果は未追跡パスについてのルール検証として使います。パターンの解析と一致判定はブラウザ内で完結します。
よくある質問
!で否定したファイルが無視されたままなのはなぜですか?
親ディレクトリが除外されていると、Gitはその中を探索しないため否定ルールが効きません。ディレクトリではなく中身を除外(dir/**)してから否定してください。
コミット済みのファイルも判定できますか?
.gitignoreは追跡済みのファイルには適用されません。このツールは未追跡のパスとして判定します。追跡をやめるには git rm --cached を使います。
末尾の / は何を意味しますか?
.gitignoreのルールでは、ディレクトリだけに一致する指定です。パス一覧でも、末尾に / を付けたものをディレクトリとして扱います。