Gitignore Tester
Επικολλήστε τους κανόνες .gitignore και μια λίστα με διαδρομές αρχείων για να δείτε ακριβώς ποια αρχεία αγνοούνται, από ποιον ακριβή κανόνα και γραμμή και ποιοι κανόνες άρνησης είναι σιωπηλά νεκροί επειδή ένας γονικός κατάλογος έχει ήδη αγνοηθεί.
Αποτέλεσμα
"Γιατί η άρνηση .gitignore μου δεν λειτουργεί;" είναι μια από τις πιο κοινές ερωτήσεις git που υπάρχουν και η ειλικρινής απάντηση είναι σχεδόν πάντα η ίδια: ένα "!pattern" που προσπαθεί να συμπεριλάβει ξανά ένα αρχείο σε έναν κατάλογο που ένας προηγούμενος κανόνας ήδη αποκλείει δεν μπορεί ποτέ να λειτουργήσει, επειδή το git δεν κατεβαίνει σε καταλόγους που αγνοούνται για να ελέγξει ξανά οτιδήποτε μέσα τους. Αυτό το εργαλείο επαναλαμβάνει τον πραγματικό αλγόριθμο αντιστοίχισης .gitignore του git — όχι μια προσέγγιση — ειδικά για να μπορεί να κατανοήσει και να εξηγήσει αυτήν την ακριβή κατάσταση, μαζί με κάθε άλλο κανόνα μοτίβου που υποστηρίζει το git.
Επικολλήστε τους κανόνες σας .gitignore σε ένα πλαίσιο και μια λίστα διαδρομών αρχείων (μία ανά γραμμή, όπως `dist/index.js`, `node_modules/foo/bar.js` ή `.env`) στο άλλο και το εργαλείο αξιολογεί κάθε διαδρομή ακριβώς όπως θα έκανε το git: τα σχόλια και οι κενές γραμμές παραλείπονται, τα κενά διαστήματα παραλείπονται, τα κενά διαστήματα είναι ``! ένα αρχικό `/` το αγκυρώνει στη ρίζα αντί να το αφήνει να ταιριάζει σε οποιοδήποτε βάθος, ένα τελευταίο `/` το περιορίζει σε καταλόγους και οι κατηγορίες χαρακτήρων `*`, `?`, `[abc]` και `**` (που ταιριάζουν μεταξύ των ορίων καταλόγου) λειτουργούν σύμφωνα με τους τεκμηριωμένους κανόνες σφαιρών.
Ουσιαστικά, τα μονοπάτια ελέγχονται κατάλογο ανά κατάλογο από τη ρίζα προς τα κάτω, με τον ίδιο τρόπο που λειτουργεί ο κινητήρας ignore του git — όχι δοκιμάζοντας την πλήρη διαδρομή έναντι κάθε κανόνα μεμονωμένα. Αυτό είναι που καθιστά δυνατό τον σωστό εντοπισμό της περίπτωσης νεκρής άρνησης: εάν το «dist/» αγνοηθεί στη γραμμή 3 και ένα μεταγενέστερο «!dist/keep.js» προσπαθήσει να διασώσει ένα αρχείο μέσα σε αυτό, αυτό το εργαλείο αναφέρει ότι το «dist/keep.js» εξακολουθεί να αγνοείται, ονομάζει τον κανόνα γραμμής-3 ως αιτία και προσποιείται ότι η εργασία σηματοδοτείται ξεχωριστά.
Ο πίνακας αποτελεσμάτων δίνει σε κάθε δοκιμασμένη διαδρομή τη δική της σειρά με μια σαφή ετυμηγορία ναι/όχι που αγνοήθηκε, το ακριβές κείμενο κανόνα και τον αριθμό γραμμής που το έκρινε, και —όποτε είναι σχετικό— μια σημείωση σε απλή γλώσσα που εξηγεί μια σκιασμένη άρνηση ή έναν κληρονομικό κανόνα γονικού καταλόγου. Αυτή είναι η λεπτομέρεια που μετατρέπει ένα μπερδεμένο .gitignore σε ένα για το οποίο μπορείτε πραγματικά να αιτιολογήσετε πριν το δεσμεύσετε.