moldspoon

📁 globパターン・.gitignoreテスター

.gitignore やglobパターンが、実際にどのファイルにマッチするのかを確認できます。「除外したはずのファイルがコミットされる」「! で戻したのに効かない」といったときの原因調査にご利用ください。rsyncの --exclude、tsconfigのinclude/exclude、CIのパスフィルタなどの下書きにも使えます。

モード

.gitignoreモード複数行のルールを上から順に適用し、除外されるかを判定します
globモードパターン1つが、どのパスにマッチするかを確認します

.gitignore の内容

判定したいファイルパス

1行に1パス。リポジトリのルートからの相対パスで入力してください。末尾に「/」を付けるとディレクトリとして扱います。

効いていない「!」があります

gitは除外したディレクトリの中を見に行かないため、親ディレクトリごと除外していると、その中のファイルを「!」で戻すことはできません。親を「dir/」ではなく「dir/*」で除外するか、「!dir/」で親を先に戻してください。

  • !build/keep.txt12行目)は build/keep.txt に効いていません。 親の build が除外済みです。

判定結果

9件中 6件が除外(ignored)されます。

  • src/index.ts追跡される
    どのルールにもマッチしませんでした。
  • src/app.log除外される
    4行目 *.log で決定(最後にマッチしたルール)。
  • node_modules/react/index.js除外される
    親ディレクトリ node_modules2行目 node_modules/ で除外されています。
  • dist/main.js除外される
    親ディレクトリ dist3行目 dist/ で除外されています。
  • .env除外される
    7行目 .env* で決定(最後にマッチしたルール)。
  • .env.example追跡される
    8行目 !.env.example で決定(最後にマッチしたルール)。
  • build/keep.txt除外される
    親ディレクトリ build11行目 build/ で除外されています。
  • docs/build/note.md除外される
    親ディレクトリ docs/build11行目 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 は考慮していません。

こんなツールをこれからも作っていきます。もしこれは!と思っていただけましたら、シェア・応援していただけると嬉しいです!😀

X (旧Twitter)

0

Facebook

LINE

0

はてブ

リンクコピー

✅ コピーしました!