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

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


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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

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

434e6616f335599d241482f169f68f1b

Κάνουμε χρήση του Σύνταξη διπλού αστεριού:

434e6616f335599d241482f169f68f1b

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

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

434e6616f335599d241482f169f68f1b

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

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

Πίσω