Git και άδειοι φάκελοι

Δεδομένου ότι είναι γνωστό ότι το Git δεν γνωρίζει φακέλους αλλά μόνο αρχεία, οι άδειες δομές φακέλων δεν καταλήγουν στο αποθετήριο. Ωστόσο, δεδομένου ότι πολλά πλαίσια και έργα τα χρειάζονται απολύτως, πρέπει να καταλήξουν εκεί. Μια κοινή πρακτική είναι να δημιουργήσετε τα λεγόμενα αρχεία κράτησης θέσης (συχνά ονομάζονται .gitkeep) που καθορίζουν έμμεσα τη δομή του φακέλου. Αυτά τα αρχεία μπορούν να δημιουργηθούν εύκολα και, αν είναι επιθυμητό, ​​μπορούν επίσης να διασφαλίσουν ότι αγνοούνται άλλα αρχεία στους φακέλους.


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

434e6616f335599d241482f169f68f1b

Έχουμε τώρα την ακόλουθη δομή φακέλων:

434e6616f335599d241482f169f68f1b

Μια κατάσταση git -u δεν μας δείχνει αλλαγές όπως αναμένεται:

Git και άδειοι φάκελοι

Τώρα χρησιμοποιούμε το εύρημα για να δημιουργήσουμε τα αρχεία κράτησης θέσης σε όλες τις απαιτούμενες τοποθεσίες:

434e6616f335599d241482f169f68f1b

Λάβαμε τώρα τον ακόλουθο φάκελο / δομή αρχείου:

434e6616f335599d241482f169f68f1b

Μια κατάσταση git -u μας δείχνει τώρα ότι όλοι οι φάκελοι (σιωπηρά) καταλήγουν στο αποθετήριο:

Git και άδειοι φάκελοι

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

434e6616f335599d241482f169f68f1b

Χρησιμοποιούμε τη σύνταξη διπλού αστεριού :

434e6616f335599d241482f169f68f1b

Η πρώτη γραμμή αγνοεί αναδρομικά όλα τα αρχεία και τους φακέλους (σε οποιοδήποτε επίπεδο) στο φάκελο "foo", η δεύτερη γραμμή εξαιρεί όλους τους φακέλους (σε οποιοδήποτε επίπεδο) αναδρομικά από αυτόν τον κανόνα και η τρίτη γραμμή αποκλείει όλα τα αρχεία .gitkeep (σε οποιοδήποτε επίπεδο) .

Τώρα δημιουργούμε μερικά δοκιμαστικά αρχεία:

434e6616f335599d241482f169f68f1b

Μια κατάσταση git -u μας δείχνει τώρα το επιθυμητό αποτέλεσμα:

Git και άδειοι φάκελοι

Πίσω