0

Tester .gitignore

Vložte svá .gitignore pravidla a seznam cest k souborům a okamžitě uvidíte, které soubory jsou ignorovány, podle kterého přesného pravidla a řádku a které výjimky jsou potichu nefunkční, protože nadřazený adresář je již ignorován.

🔒 Zpracováno výhradně ve vašem prohlížeči – nic, co zde zadáte, se nikdy nenahraje.

Zpracovává se... 0%
Zpracovávám pravidla .gitignore
Porovnávám cesty k souborům
Hotovo

Výsledek

„Proč nefunguje moje výjimka v .gitignore?“ je jednou z nejčastějších otázek kolem gitu a poctivá odpověď je téměř vždy stejná: vzor `!`, který se pokouší znovu zahrnout soubor uvnitř adresáře, který už dřívější pravidlo vyloučilo, nemůže nikdy fungovat, protože git do ignorovaných adresářů nevstupuje, aby v nich cokoli znovu kontroloval. Tento nástroj znovu implementuje skutečný algoritmus porovnávání .gitignore – ne přibližný – právě proto, aby tuto situaci dokázal zachytit a vysvětlit, spolu se všemi dalšími pravidly pro vzory, které git podporuje.

Vložte svá .gitignore pravidla do jednoho pole a seznam cest k souborům (jedna na řádek, například `dist/index.js`, `node_modules/foo/bar.js` nebo `.env`) do druhého a nástroj vyhodnotí každou cestu přesně tak, jako by to udělal git: komentáře a prázdné řádky se přeskakují, koncové mezery se ořezávají, pokud nejsou escapované, úvodní `!` pravidlo neguje, úvodní `/` ho ukotvuje ke kořeni, místo aby umožňovalo shodu v libovolné hloubce, koncové `/` ho omezuje na adresáře a `*`, `?`, znakové třídy `[abc]` a `**` (shoda přes hranice adresářů) fungují podle zdokumentovaných pravidel pro globy.

Zásadní je, že cesty jsou kontrolovány adresář po adresáři od kořene směrem dolů, stejným způsobem, jakým pracuje vlastní engine gitu pro ignorování – nikoli testováním celé cesty proti každému pravidlu izolovaně. Právě to umožňuje správně detekovat případ mrtvé výjimky: pokud je `dist/` ignorován na řádku 3 a pozdější `!dist/keep.js` se pokouší zachránit jeden soubor uvnitř, tento nástroj ohlásí `dist/keep.js` jako stále ignorovaný, uvede pravidlo na řádku 3 jako důvod a samostatně označí výjimku jako zastíněnou, místo aby tiše předstíral, že fungovala.

Výsledná tabulka přiřadí každé testované cestě vlastní řádek s jasným verdiktem ano/ne ignorováno, přesným zněním pravidla a číslem řádku, které o ní rozhodlo, a – kdykoli je to relevantní – srozumitelnou poznámkou vysvětlující zastíněnou výjimku nebo zděděné pravidlo z nadřazeného adresáře. To je ten detail, který promění matoucí .gitignore v něco, o čem můžete skutečně přemýšlet, než to commitnete.