Tester .gitignore
Wklej swoje reguły .gitignore i listę ścieżek plików, aby zobaczyć dokładnie, które pliki są ignorowane, przez którą regułę i linię, oraz które reguły negacji są po cichu martwe, ponieważ katalog nadrzędny jest już ignorowany.
🔒 Przetwarzane w całości w Twojej przeglądarce — nic, co tu wpiszesz, nie zostanie nigdy przesłane.
Wynik
„Dlaczego moja negacja w .gitignore nie działa?” to jedno z najczęstszych pytań dotyczących gita, a szczera odpowiedź jest prawie zawsze taka sama: wzorzec `!wzorzec` próbujący ponownie dołączyć plik wewnątrz katalogu, który wcześniejsza reguła już wyklucza, nigdy nie zadziała, ponieważ git nie zagłębia się do ignorowanych katalogów, aby ponownie sprawdzić cokolwiek w ich wnętrzu. To narzędzie implementuje rzeczywisty algorytm dopasowania .gitignore gita — nie przybliżenie — specjalnie po to, aby wychwycić i wyjaśnić dokładnie tę sytuację, wraz z każdą inną regułą wzorców obsługiwaną przez gita.
Wklej swoje reguły .gitignore do jednego pola i listę ścieżek plików (po jednej na linię, np. `dist/index.js`, `node_modules/foo/bar.js` lub `.env`) do drugiego, a narzędzie oceni każdą ścieżkę dokładnie tak, jak zrobiłby to git: komentarze i puste linie są pomijane, końcowe spacje są usuwane (chyba że użyto znaku ucieczki), wiodący `!` neguje regułę, wiodący `/` kotwiczy ją do korzenia (zamiast dopasowywać na dowolnej głębokości), końcowy `/` ogranicza ją do katalogów, a `*`, `?`, klasy znaków `[abc]` i `**` (dopasowujące się przez granice katalogów) działają zgodnie z udokumentowanymi regułami glob.
Co kluczowe, ścieżki są sprawdzane katalog po katalogu od korzenia w dół, w ten sam sposób, w jaki działa silnik ignorowania gita — a nie przez testowanie pełnej ścieżki względem każdej reguły w izolacji. To właśnie umożliwia poprawne wykrycie przypadku martwej negacji: jeśli `dist/` jest ignorowany w linii 3, a późniejszy wzorzec `!dist/keep.js` próbuje uratować jeden plik wewnątrz, to narzędzie zgłasza `dist/keep.js` jako nadal ignorowany, wskazuje regułę z linii 3 jako przyczynę i osobno oznacza negację jako przysłoniętą, zamiast po cichu udawać, że zadziałała.
Tabela wyników daje każdej testowanej ścieżce osobny wiersz z jasnym werdyktem tak/nie dotyczącym ignorowania, dokładną treścią reguły i numerem linii, które o tym zadecydowały, oraz — gdy ma to znaczenie — prostą notatką wyjaśniającą przysłoniętą negację lub odziedziczoną regułę z katalogu nadrzędnego. To ten szczegół przekształca mylący .gitignore w coś, co można faktycznie zrozumieć przed zatwierdzeniem.