0

Тестер на Gitignore

Поставете вашите .gitignore правила и списък от файлови пътища, за да видите точно кои файлове се игнорират, от кое конкретно правило и ред, и кои правила за отричане безмълвно не действат, защото родителската директория вече е игнорирана.

🔒 Обработва се изцяло във вашия браузър - нищо, което въвеждате тук, никога не се качва.

Обработка... 0%
Анализиране на .gitignore правила
Съпоставяне на файлови пътища
Готово

Резултат

„Защо отрицанието в .gitignore не работи?“ е един от най-честите въпроси за git и честният отговор почти винаги е един и същ: шаблон `!`, опитващ се да включи отново файл в директория, която предишно правило вече изключва, не може да проработи, защото git не навлиза в игнорирани директории, за да проверява повторно каквото и да било в тях. Този инструмент пресъздава действителния алгоритъм за съпоставяне на .gitignore на git — не приближение — специално за да улови и обясни точно тази ситуация, заедно с всички останали правила за шаблони, които git поддържа.

Поставете вашите .gitignore правила в едното поле и списък от файлови пътища (по един на ред, като `dist/index.js`, `node_modules/foo/bar.js` или `.env`) в другото и инструментът оценява всеки път точно както би го направил git: коментарите и празните редове се пропускат, завършващите интервали се премахват, освен ако не са екранирани, начален `!` отрича правило, начален `/` го закрепва към корена, вместо да му позволи да съвпада на произволна дълбочина, завършващ `/` го ограничава до директории, а `*`, `?`, символните класове `[abc]` и `**` (съвпадащ през граници на директории) работят според документираните glob правила.

Критично важно е, че пътищата се проверяват директория по директория от корена надолу, по същия начин, по който работи собственият ignore механизъм на git — а не чрез тестване на пълния път срещу всяко правило изолирано. Това позволява коректното откриване на случая с мъртво отрицание: ако `dist/` е игнорирана на ред 3 и по-късно `!dist/keep.js` се опитва да спаси един файл в нея, този инструмент отчита `dist/keep.js` като все още игнориран, посочва правилото от ред 3 като причина и отделно маркира отрицанието като засенчено, вместо мълчаливо да се преструва, че то е проработило.

Таблицата с резултати дава на всеки тестван път собствен ред с ясна присъда да/не игнориран, точния текст на правилото и номера на реда, които са го определили, и — когато е уместно — бележка на разбираем език, обясняваща засенчено отрицание или наследено правило от родителска директория. Това е детайлът, който превръща объркващ .gitignore в такъв, който можете действително да разберете преди къмит.