Gitignore-tester
Plak je .gitignore-regels en een lijst met bestandspaden om exact te zien welke bestanden worden genegeerd, door welke specifieke regel en regelnummer, en welke negatieregels stilzwijgend dood zijn omdat een bovenliggende map al wordt genegeerd.
🔒 Wordt volledig in uw browser verwerkt. Niets wat u hier invoert, wordt ooit geüpload.
Resultaat
"Waarom werkt mijn .gitignore-negatie niet?" is een van de meest gestelde git-vragen, en het eerlijke antwoord is bijna altijd hetzelfde: een `!patroon` dat een bestand probeert te her-includeren in een map die al door een eerdere regel wordt uitgesloten, kan nooit werken, omdat git niet in genegeerde mappen afdaalt om iets erin opnieuw te controleren. Deze tool implementeert git's eigenlijke .gitignore-matchingsalgoritme opnieuw — geen benadering — specifiek om die exacte situatie te kunnen vangen en uitleggen, samen met elke andere patroonregel die git ondersteunt.
Plak je .gitignore-regels in één vak en een lijst met bestandspaden (één per regel, zoals `dist/index.js`, `node_modules/foo/bar.js` of `.env`) in het andere, en de tool evalueert elk pad precies zoals git dat zou doen: commentaar en lege regels worden overgeslagen, volgspaties worden verwijderd tenzij geëscaped, een leidende `!` negeert een regel, een leidende `/` verankert deze aan de root in plaats van matching op elke diepte toe te staan, een afsluitende `/` beperkt het tot mappen, en `*`, `?`, `[abc]` tekenklassen en `**` (matching over mapgrenzen) werken allemaal volgens de gedocumenteerde glob-regels.
Cruciaal is dat paden map voor map van de root naar beneden worden gecontroleerd, op dezelfde manier als git's eigen ignore-engine werkt — niet door het volledige pad geïsoleerd tegen elke regel te testen. Dat is wat het mogelijk maakt om de dode-negatiecasus correct te detecteren: als `dist/` op regel 3 wordt genegeerd en een later `!dist/keep.js` probeert één bestand erin te redden, rapporteert deze tool `dist/keep.js` als nog steeds genegeerd, noemt de regel-3-regel als de reden, en markeert apart de negatie als overschaduwd in plaats van stilzwijgend te doen alsof het werkte.
De resultaattabel geeft elk getest pad zijn eigen rij met een duidelijk ja/nee genegeerd-oordeel, de exacte regeltekst en het regelnummer die erover beslisten, en — waar relevant — een heldere toelichting die een overschaduwde negatie of een geërfde bovenliggende-mapregel uitlegt. Dat is het detail dat een verwarrende .gitignore verandert in iets waar je daadwerkelijk over kunt redeneren voordat je commit.