Gitignore testeris
Įklijuokite savo .gitignore taisykles ir failų kelių sąrašą, kad tiksliai pamatytumėte, kurie failai nepaisomi, pagal kurią tikslią taisyklę ir eilutę ir kurios neigimo taisyklės tyliai neveikia, nes pirminis katalogas jau nepaisomas.
Rezultatas
"Kodėl mano .gitignore neigimas neveikia?" yra vienas iš labiausiai paplitusių „git“ klausimų, o sąžiningas atsakymas beveik visada yra tas pats: „!pattern“, bandantis iš naujo įtraukti failą į katalogą, kurio ankstesnė taisyklė jau neįtraukė, niekada negali veikti, nes „git“ nenusileidžia į ignoruojamus katalogus, kad dar kartą patikrintų ką nors juose. Šis įrankis iš naujo įgyvendina tikrąjį „git“ .gitignore atitikimo algoritmą – o ne apytikslį – konkrečiai, kad galėtų užfiksuoti ir paaiškinti tą tikslią situaciją, kartu su visomis kitomis „git“ palaikomomis šablonų taisyklėmis.
Įklijuokite savo .gitignore taisykles į vieną laukelį, o failo kelių sąrašą (po vieną eilutėje, pvz., `dist/index.js`, `node_modules/foo/bar.js` arba `.env`) į kitą, o įrankis įvertins kiekvieną kelią tiksliai taip, kaip darytų git: praleidžiami komentarai ir tuščios eilutės, o tarpai be taisyklės yra panaikinami. `/` pririša jį prie šaknies, o ne leidžia sutapti bet kokiame gylyje, o gale esantis `/` apriboja jį tik katalogais, o `*`, `?`, `[abc]` simbolių klasės ir `**` (atitinka katalogo ribas) veikia pagal dokumentuotas globos taisykles.
Labai svarbu, kad keliai būtų tikrinami po katalogą nuo šakninės šaknies žemyn, lygiai taip pat, kaip veikia paties „git“ ignoravimo modulis – ne bandant visą kelią pagal kiekvieną taisyklę atskirai. Būtent tai leidžia teisingai aptikti neigimo atvejį: jei „dist/“ nepaisoma 3 eilutėje, o vėlesnis „!dist/keep.js“ bando išgelbėti vieną failą jame, šis įrankis praneša „dist/keep.js“ kaip vis dar nepaisytą, įvardija 3 eilutės taisyklę kaip priežastį ir atskirai pažymi neigimą kaip apsimetinėjantį, o ne tyliai veikiantį.
Rezultatų lentelėje kiekvienam išbandytam keliui pateikiama atskira eilutė su aiškiu „taip“ / „ne“ nepaisomu sprendimu, tikslus taisyklės tekstas ir eilutės numeris, kuris jį nulėmė, ir, jei reikia, pastaba paprasta kalba, paaiškinanti šešėlinį neigimą arba paveldėtą pirminio katalogo taisyklę. Tai yra detalė, kuri paverčia painų .gitignore į tokį, apie kurį iš tikrųjų galite pamąstyti prieš įsipareigodami.