📁 globパターン・.gitignoreテスター
.gitignore やglobパターンが、実際にどのファイルにマッチするのかを確認できます。「除外したはずのファイルがコミットされる」「! で戻したのに効かない」といったときの原因調査にご利用ください。rsyncの --exclude、tsconfigのinclude/exclude、CIのパスフィルタなどの下書きにも使えます。
モード
.gitignore の内容
判定したいファイルパス
1行に1パス。リポジトリのルートからの相対パスで入力してください。末尾に「/」を付けるとディレクトリとして扱います。
効いていない「!」があります
gitは除外したディレクトリの中を見に行かないため、親ディレクトリごと除外していると、その中のファイルを「!」で戻すことはできません。親を「dir/」ではなく「dir/*」で除外するか、「!dir/」で親を先に戻してください。
!build/keep.txt(12行目)はbuild/keep.txtに効いていません。 親のbuildが除外済みです。
判定結果
9件中 6件が除外(ignored)されます。
src/index.ts追跡されるどのルールにもマッチしませんでした。src/app.log除外される4行目*.logで決定(最後にマッチしたルール)。node_modules/react/index.js除外される親ディレクトリnode_modulesが 2行目node_modules/で除外されています。dist/main.js除外される親ディレクトリdistが 3行目dist/で除外されています。.env除外される7行目.env*で決定(最後にマッチしたルール)。.env.example追跡される8行目!.env.exampleで決定(最後にマッチしたルール)。build/keep.txt除外される親ディレクトリbuildが 11行目build/で除外されています。docs/build/note.md除外される親ディレクトリdocs/buildが 11行目build/で除外されています。README.md追跡されるどのルールにもマッチしませんでした。
ルールの解釈
2: node_modules/除外 / どの階層のパスにもマッチ / ディレクトリのみ3: dist/除外 / どの階層のパスにもマッチ / ディレクトリのみ4: *.log除外 / どの階層のパスにもマッチ / ファイル・ディレクトリの両方7: .env*除外 / どの階層のパスにもマッチ / ファイル・ディレクトリの両方8: !.env.example除外の打ち消し(!) / どの階層のパスにもマッチ / ファイル・ディレクトリの両方11: build/除外 / どの階層のパスにもマッチ / ディレクトリのみ12: !build/keep.txt除外の打ち消し(!) / ルート固定(パターンに「/」を含むため) / ファイル・ディレクトリの両方
除外されるパスの一覧をコピーします
記法リファレンス
*「/」を除く0文字以上。src/*.ts は src/a.ts にマッチしますが src/lib/a.ts にはマッチしません。
**ディレクトリを跨ぐワイルドカード。1つのセグメントを丸ごと占めているときだけ有効です(a/**/b)。
?「/」を除く任意の1文字。
[abc] [0-9]いずれか1文字。[!abc] や [^abc] で否定になります。
!(.gitignoreのみ)除外を打ち消して追跡対象に戻します。
末尾の /(.gitignoreのみ)ディレクトリにだけマッチします。同名のファイルは対象外です。
※ 入力内容はすべてブラウザ内で処理しており、弊社サーバーへ送信・保存することは一切ありません。
※ .gitignoreは「最後にマッチしたルールが勝つ」仕様です。順番を入れ替えると結果が変わります。
※ すでにgitの追跡下にあるファイルは、.gitignoreに書いても除外されません。git rm --cached でインデックスから外す必要があります。
※ 判定はルート直下の .gitignore 1枚を想定しています。サブディレクトリに置いた .gitignore や、グローバル設定・.git/info/exclude は考慮していません。