0

Gitignore Tester

Επικολλήστε τους κανόνες σας .gitignore και μια λίστα διαδρομών αρχείων για να δείτε ακριβώς ποια αρχεία αγνοούνται, από ποιον ακριβή κανόνα και γραμμή, και ποιοι κανόνες άρνησης είναι σιωπηρά νεκροί επειδή ένας γονικός φάκελος είναι ήδη αποκλεισμένος.

🔒 Επεξεργάζεται εξ ολοκλήρου στο πρόγραμμα περιήγησής σας — τίποτα που εισάγετε εδώ δεν μεταφορτώνεται ποτέ.

Επεξεργασία... 0%
Ανάλυση κανόνων .gitignore
Αντιστοίχιση διαδρομών αρχείων
Ολοκληρώθηκε

Αποτέλεσμα

«Γιατί δεν δουλεύει η άρνηση του .gitignore μου;» είναι μία από τις πιο συχνές ερωτήσεις για το git, και η ειλικρινής απάντηση είναι σχεδόν πάντα η ίδια: ένα `!pattern` που προσπαθεί να επανεντάξει ένα αρχείο μέσα σε φάκελο που έχει ήδη αποκλειστεί από προηγούμενο κανόνα δεν μπορεί ποτέ να λειτουργήσει, επειδή το git δεν μπαίνει μέσα σε αγνοημένους φακέλους για να επανελέγξει το περιεχόμενό τους. Αυτό το εργαλείο αναπαράγει τον πραγματικό αλγόριθμο αντιστοίχισης .gitignore του git — όχι μια προσέγγιση — ακριβώς για να μπορεί να εντοπίζει και να εξηγεί αυτήν ακριβώς την περίπτωση, μαζί με κάθε άλλο κανόνα προτύπων που υποστηρίζει το git.

Επικολλήστε τους κανόνες σας .gitignore σε ένα πλαίσιο και μια λίστα διαδρομών αρχείων (μία ανά γραμμή, όπως `dist/index.js`, `node_modules/foo/bar.js`, ή `.env`) στο άλλο, και το εργαλείο αξιολογεί κάθε διαδρομή ακριβώς όπως θα το έκανε το git: σχόλια και κενές γραμμές παραλείπονται, τα τελικά κενά αφαιρούνται εκτός αν είναι με χαρακτήρα διαφυγής, ένα αρχικό `!` αντιστρέφει έναν κανόνα, ένα αρχικό `/` τον αγκυρώνει στη ρίζα αντί να επιτρέπει αντιστοίχιση σε οποιοδήποτε βάθος, ένα τελικό `/` τον περιορίζει σε φακέλους, και τα `*`, `?`, κλάσεις χαρακτήρων `[abc]` και `**` (που αντιστοιχεί διασχίζοντας όρια φακέλων) λειτουργούν όλα σύμφωνα με τους τεκμηριωμένους κανόνες glob.

Κρίσιμα, οι διαδρομές ελέγχονται φάκελο προς φάκελο από τη ρίζα προς τα κάτω, με τον ίδιο τρόπο που λειτουργεί η μηχανή αποκλεισμού του git — όχι ελέγχοντας την πλήρη διαδρομή ενάντια σε κάθε κανόνα μεμονωμένα. Αυτό είναι που καθιστά δυνατό τον σωστό εντοπισμό της περίπτωσης νεκρής άρνησης: αν ο `dist/` αγνοείται στη γραμμή 3 και ένα μεταγενέστερο `!dist/keep.js` προσπαθεί να διασώσει ένα αρχείο μέσα του, αυτό το εργαλείο αναφέρει το `dist/keep.js` ως ακόμα αγνοημένο, ονομάζει τον κανόνα της γραμμής 3 ως την αιτία, και ξεχωριστά επισημαίνει την άρνηση ως σκιασμένη αντί να προσποιείται σιωπηρά ότι λειτούργησε.

Ο πίνακας αποτελεσμάτων δίνει σε κάθε δοκιμασμένη διαδρομή τη δική της γραμμή με μια απόφαση ναι/όχι για το αν αγνοείται, το ακριβές κείμενο κανόνα και τον αριθμό γραμμής που την καθόρισε, και — όποτε είναι σχετικό — μια σημείωση σε απλή γλώσσα που εξηγεί μια σκιασμένη άρνηση ή έναν κληρονομημένο κανόνα γονικού φακέλου. Αυτή είναι η λεπτομέρεια που μετατρέπει ένα μπερδεμένο .gitignore σε κάτι που μπορείτε πραγματικά να κατανοήσετε πριν κάνετε commit.