0

Gitignore Tesztelő

Illessze be a .gitignore szabályait és a fájlútvonalak listáját, hogy pontosan lássa, mely fájlok lesznek figyelmen kívül hagyva, mely konkrét szabály és sor alapján, és hogy mely kizáró szabályok halottak csendben, mert a szülőkönyvtár már figyelmen kívül van hagyva.

🔒 Teljesen a böngészőjében dolgozzák fel – soha semmi, amit itt beírt, nem kerül feltöltésre.

Feldolgozás... 0%
.gitignore szabályok feldolgozása
Fájlútvonalak illesztése
Kész

Eredmény

„Miért nem működik a .gitignore kizárásom?” az egyik leggyakoribb git kérdés, és az őszinte válasz szinte mindig ugyanaz: egy `!minta`, ami egy olyan fájlt próbál újra bevonni egy könyvtáron belül, amit egy korábbi szabály már kizárt, soha nem működhet, mert a git nem lép be figyelmen kívül hagyott könyvtárakba, hogy bármit is újraellenőrizzen bennük. Ez az eszköz a git valódi .gitignore illesztési algoritmusát implementálja újra – nem egy közelítést –, kifejezetten azért, hogy pont ezt a helyzetet elkapja és elmagyarázza, a git által támogatott összes többi minta szabállyal együtt.

Illessze be a .gitignore szabályait az egyik mezőbe, és a fájlútvonalak listáját (soronként egyet, mint `dist/index.js`, `node_modules/foo/bar.js` vagy `.env`) a másikba, és az eszköz minden útvonalat pontosan úgy értékel ki, ahogy a git tenné: a megjegyzések és az üres sorok kimaradnak, a záró szóközök levágásra kerülnek, kivéve ha escape-elve vannak, a vezető `!` kizár egy szabályt, a vezető `/` a gyökérhez horgonyozza ahelyett, hogy bármilyen mélységben illeszkedne, a záró `/` könyvtárakra korlátozza, és a `*`, `?`, `[abc]` karakterosztályok, valamint a `**` (ami a könyvtárhatárokon át illeszkedik) mind a dokumentált glob szabályok szerint működnek.

Kritikus, hogy az útvonalak könyvtárról könyvtárra, a gyökértől lefelé vannak ellenőrizve, ugyanúgy, ahogy a git saját ignore motorja működik – nem pedig úgy, hogy a teljes útvonalat izoláltan teszteljük minden szabállyal szemben. Ez teszi lehetővé a halott kizárás eset helyes észlelését: ha a `dist/` figyelmen kívül van hagyva a 3. sorban, és egy későbbi `!dist/keep.js` megpróbál megmenteni egy fájlt benne, ez az eszköz a `dist/keep.js`-t továbbra is figyelmen kívül hagyottként jelenti, a 3. sor szabályát nevezi meg okként, és külön megjelöli a kizárást árnyékoltként, ahelyett hogy csendben úgy tenne, mintha működött volna.

Az eredménytáblázat minden tesztelt útvonalnak saját sort ad egy egyértelmű igen/nem figyelmen kívül hagyott ítélettel, a döntő pontos szabályszöveggel és sorszámmal, és – ahol releváns – egy közérthető megjegyzéssel, ami elmagyaráz egy árnyékolt kizárást vagy egy örökölt szülőkönyvtár szabályt. Ez az a részletesség, ami egy zavaros .gitignore-t olyanná tesz, amit commit előtt valóban át lehet gondolni.