Gitignore Tester
Prilepite svoja pravila .gitignore in seznam poti datotek, da natančno vidite, katere datoteke so prezrte, po katerem natančnem pravilu in vrstici ter katera pravila zanikanja so tiho mrtva, ker je nadrejeni imenik že prezrt.
Rezultat
"Zakaj moja negacija .gitignore ne deluje?" je eno najpogostejših vprašanj o git-u in pošten odgovor je skoraj vedno enak: `!vzorec`, ki poskuša znova vključiti datoteko v imenik, ki ga prejšnje pravilo že izključuje, nikoli ne more delovati, ker se git ne spusti v prezrte imenike, da bi znova preveril karkoli v njih. To orodje znova implementira git-ov dejanski algoritem za ujemanje .gitignore – ne približek – posebej zato, da lahko ujame in pojasni točno to situacijo, skupaj z vsemi drugimi pravili vzorcev, ki jih git podpira.
Prilepite svoja pravila .gitignore v eno polje in seznam poti datotek (eno na vrstico, kot je `dist/index.js`, `node_modules/foo/bar.js` ali `.env`) v drugo in orodje ovrednoti vsako pot natanko tako, kot bi to naredil git: komentarji in prazne vrstice so preskočeni, končni presledki so odstranjeni, razen če so ubežni, začetni `!` zanika pravilo, začetni `/` ga zasidra v koren, namesto da bi pustil ujemanje v kateri koli globini, končni `/` ga omejuje na imenike in `*`, `?`, razredi znakov `[abc]` in `**` (ujema se preko meja imenika) delujejo v skladu z dokumentiranimi pravili glob.
Najpomembneje je, da se poti preverjajo imenik za imenikom od korena navzdol, enako kot deluje git-ov lastni mehanizem za ignoriranje — ne s testiranjem celotne poti glede na vsako pravilo posebej. To je tisto, zaradi česar je mogoče pravilno zaznati primer mrtve negacije: če je `dist/` prezrt v vrstici 3 in poznejši `!dist/keep.js` poskuša rešiti eno datoteko v njej, to orodje poroča, da je `dist/keep.js` še vedno prezrt, imenuje pravilo vrstice 3 kot razlog in posebej označi negacijo kot zasenčeno, namesto da bi se tiho pretvarjalo, da je delovalo.
Tabela z rezultati daje vsaki preizkušeni poti svojo vrstico z jasno razsodbo o prezrtem da/ne, natančnim besedilom pravila in številko vrstice, ki je to odločila, in – kadar koli je primerno – opombo v preprostem jeziku, ki pojasnjuje zasenčeno negacijo ali podedovano pravilo nadrejenega imenika. To je podrobnost, ki spremeni zmeden .gitignore v tistega, o katerem lahko dejansko razmišljate, preden se zavežete.