Διορθώστε: Το Gitignore δεν λειτουργεί

Το GitHub έχει εξελιχθεί σε κορυφαίο πρωτοπόρο στον τομέα της συνεργασίας κώδικα και της κοινής χρήσης αποθετηρίων. Το GitHub είναι κυρίως λογισμικό ελέγχου έκδοσης το οποίο επιτρέπει στους χρήστες να ελέγχουν τον κατανεμημένο έλεγχο των εκδόσεων και την SCM (διαχείριση πηγαίου κώδικα). Αυτή η πλατφόρμα χρησιμοποιείται από μεγάλες επιχειρήσεις και εταιρείες σε όλο τον κόσμο.

.gitignore

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

Τι είναι το .gitignore;

Το Git (ή το GitHub) βλέπει κάθε αρχείο στον κατάλογο εργασίας σας. Χαρακτηρίζει κάθε αρχείο ως ένα από τα τρία:

  • Παρακολούθηση: Αυτά τα αρχεία είτε δεσμεύονται είτε διοργανώνονται στο παρελθόν στο ιστορικό.
  • Μη εξαντληθεί: Αυτά είναι τα αρχεία που δεν έχουν προηγουμένως πραγματοποιηθεί ή έχουν δεσμευτεί.
  • Αγνοούνται: Αυτά είναι τα αρχεία που ο ίδιος ο χρήστης είπε στο Git να αγνοήσει πλήρως.

Αυτά τα αγνοούμενα αρχεία ενδέχεται να ποικίλουν σενάριο σε σενάριο και είναι ως επί το πλείστον μηχανογραφημένα αρχεία ή δημιουργούν αντικείμενα. Αυτή είναι η συνήθης πρακτική. ίσως αγνοείτε διάφορα άλλα αρχεία σύμφωνα με τις δικές σας ανάγκες. Μερικά παραδείγματα αυτών των αρχείων είναι:

  • Σύνταξη κώδικα: Αυτά τα αρχεία είναι συνήθως με την επέκταση .class, .pyc, .ccp κ.λπ.
  • Κρυφό αρχεία συστήματος: Αυτά είναι αρχεία που χρησιμοποιούνται από το σύστημα για τις λειτουργίες του αλλά είναι κρυμμένα από απλή προβολή, για παράδειγμα, DS_Store ή Thumbs.db κ.λπ.
  • Δημιουργία καταλόγων εξόδου: Αυτές είναι κυρίως οι κατάλογοι του / bin, / out, κλπ.
  • Κλειδιά εξάρτησης: Αυτά τα αρχεία μπορεί να είναι το περιεχόμενο των ενοτήτων / node ή / packages.
  • Αρχεία διαμόρφωσης IDE: Αυτά είναι αρχεία ρυθμίσεων που συνήθως δημιουργούνται ή διαχειρίζονται από το λογισμικό IDE.
  • Αρχεία που δημιουργούνται κατά το χρόνο εκτέλεσης: Υπάρχουν ορισμένα προγράμματα που δημιουργούν αρχεία κατά το χρόνο εκτέλεσης. Εάν εκτελείται ένας τέτοιος κώδικας, ορισμένα αρχεία ενδέχεται να δημιουργηθούν κατά τη διάρκεια εκτέλεσης του φακέλου εργασίας σας και ίσως να τα αγνοήσετε στο Git.

Όποιο αρχείο θέλετε να αγνοήσετε παρακολουθείται σε ένα ειδικό αρχείο που ονομάζεται .gitignore το οποίο ελέγχεται ως επί το πλείστον στη ρίζα του αποθετηρίου εργασίας σας. Σύμφωνα με την επίσημη τεκμηρίωση του GitHub σχετικά με το θέμα, δεν υπάρχει συγκεκριμένη εντολή gitignore. Αντ 'αυτού, πρέπει να επεξεργαστείτε χειροκίνητα το αρχείο που θέλετε να αγνοήσετε. Το αρχείο .gitignore περιέχει πρότυπα που ταιριάζουν με τα ονόματα των αρχείων στο αποθετήριο εργασίας σας και αυτά χρησιμοποιούνται για να καθορίσουν εάν ένα συγκεκριμένο αρχείο πρέπει να αγνοηθεί ή όχι.

Τι προκαλεί.

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

Ακολουθούν μερικές λύσεις που μπορεί να σας βοηθήσουν. Κάθε λύση μπορεί να μην ισχύει στην περίπτωσή σας, οπότε βεβαιωθείτε ότι έχετε μεταβεί στο επόμενο αν δεν πληρούνται οι αρχικές συνθήκες.

Λύση 1: Έλεγχος αρχείου .gitignore

Μια ενδιαφέρουσα περίπτωση εμφανίστηκε όπου είδαμε ότι το αρχείο .gitignore δημιουργήθηκε σε λάθος μορφή. Αυτό το συγκεκριμένο ζήτημα παρουσιάστηκε όταν οι χρήστες δημιούργησαν το αρχείο χρησιμοποιώντας την προεπιλεγμένη εφαρμογή του Σημειωματάριου στο Windows OS. Αποδεικνύεται ότι το Σημειωματάριο γράφει το αρχείο σε Unicode αντί για μορφή ANSI. Σε αυτήν τη λύση, θα αποθηκεύσουμε τις αλλαγές του Σημειωματάριου στη σωστή μορφή του .gitignore και θα δούμε αν αυτό διορθώνει το πρόβλημα.

Σημείωση: Πρέπει να καταργήσετε την επέκταση .txt από το αρχείο όταν δημιουργείτε ένα νέο αρχείο χρησιμοποιώντας το Notepad.

  1. Αφού γράψετε τον κώδικα ή τις αλλαγές σε ένα νέο έγγραφο κειμένου στο Σημειωματάριο, κάντε κλικ στο Αρχείο και επιλέξτε Αποθήκευση ως .

Αποθήκευση ως - Σημειωματάριο
  1. Τώρα μπροστά από την κωδικοποίηση, επιλέξτε ANSI . Τώρα καταργήστε την επέκταση αρχείου .txt και αποθηκεύστε το αρχείο με το όνομα ' .gitignore '. Επιλέξτε τον σωστό κατάλογο και αποθηκεύστε τον.

Επιλογή ANSI ως τύπου κωδικοποίησης
  1. Τώρα πλοηγηθείτε στον κατάλογο και ελέγξτε αν δημιουργείται το σωστό αρχείο. Τώρα δοκιμάστε ξανά με το Git και δείτε αν η λειτουργία Ignore λειτουργεί όπως αναμένεται.

Οι προγραμματιστές πρέπει να απέχουν από τη χρήση του προεπιλεγμένου Σημειωματάριου στα Windows. Αντ 'αυτού, θα πρέπει να χρησιμοποιήσετε το σωστό σημειωματάριο προγραμματιστών. Μερικά παραδείγματα περιλαμβάνουν το Σημειωματάριο ++ κλπ. Σε αυτά, δεν θα έχετε τέτοια θέματα.

Σημείωση: Εάν το αρχείο σας είναι ήδη αποθηκευμένο σε μορφή UNICODE, θα πρέπει να αποθηκεύσετε σωστά τα περιεχόμενα σε μορφή ANSI αν θέλετε το αρχείο σας να ανιχνευθεί σωστά από το Git.

Λύση 2: Έλεγχος του αρχείου που προσπαθείτε να αγνοήσετε

Μια άλλη προϋπόθεση για την οποία το .gitignore λειτουργεί είναι ότι το αρχείο σας δεν πρέπει να είναι μέρος του αποθετηρίου ακόμη . Αυτή είναι μια πολύ σημαντική πτυχή, σαν να είναι αλήθεια, το αρχείο δεν θα αγνοηθεί καθώς έχει ήδη προστεθεί στο αποθετήριο. Το Git δεν μπορεί να το αγνοήσει ακόμα κι αν τοποθετήσετε το όνομα ή τον κανόνα του στο αρχείο .gitignore. Επομένως, κατ 'ουσίαν, το Git αγνοεί μόνο τα untracked αρχεία .

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

Λύση 3: Επαναπροσθήκη αρχείων στο χώρο αποθήκευσης

Αν έχετε ήδη προσθέσει κανόνες στο .gitignore αλλά έχουν ήδη προστεθεί τα αρχεία που θέλετε να αγνοήσετε, μπορούμε να προσθέσουμε τα αρχεία ξανά. Προσθέτοντας σημαίνει ότι θα καταργήσουμε τα πάντα από το δείκτη Git και στη συνέχεια θα προσθέσουμε τα πάντα πίσω στο αποθετήριο σας ξανά. Όταν προσθέτουμε τα αρχεία ξανά από την αρχή, θα διατηρηθούν οι κανόνες που έχετε προσθέσει στο .gitignore και θα προστεθούν μόνο τα σωστά αρχεία.

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

  1. Εκτελέστε την ακόλουθη εντολή. Αυτό θα διαρκέσει και θα απομακρύνει τις διαδρομές στα αρχεία σας από το ευρετήριο git με έναν αναδρομικό τρόπο.
 git rm -r -cached. 
  1. Αφού εκτελεστεί, θα πρέπει να εκτελέσετε την ακόλουθη εντολή. Αυτό θα προσθέσει όλα τα αρχεία σας πίσω και αφού το .gitignore θα έχει τους κανόνες, θα ενημερωθούν μόνο τα σωστά αρχεία.
 git add. 
  1. Τώρα θα επαναφέρουμε όλα τα αρχεία σας στον ευρετήριο χρησιμοποιώντας τον παρακάτω κώδικα:
 git commit -m ".gitignore λειτουργεί τώρα" 

Τώρα επιθεωρήστε τα αρχεία σας και δείτε εάν το πρόβλημα επιλύθηκε και μπορείτε να χρησιμοποιήσετε το .gitignore ξανά χωρίς προβλήματα.

Ενδιαφέροντα Άρθρα