0

Gitignore Tester

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

Buy Me a Coffee at ko-fi.com
Обработка... 0%
Правила за анализ на .gitignore
Съответстващи пътеки на файлове
Готово

Резултат

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

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

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

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