Δεδομένου ότι το Git δεν γνωρίζει φακέλους, μόνο αρχεία, κενές δομές φακέλων δεν καταλήγουν στο αποθετήριο. Ωστόσο, δεδομένου ότι χρειάζονται απολύτως πολλά πλαίσια και έργα, πρέπει να καταλήξουν εκεί. Μια κοινή πρακτική είναι να δημιουργήσετε τα λεγόμενα αρχεία κράτησης θέσης (συχνά ονομάζονται .gitkeep), τα οποία καθορίζουν σιωπηρά τη δομή του φακέλου. Αυτά τα αρχεία μπορούν να δημιουργηθούν εύκολα και, εάν είναι επιθυμητό, να διασφαλιστεί ότι αγνοούνται άλλα αρχεία στους φακέλους.
Αρχικά δημιουργούμε ένα δοκιμαστικό αποθετήριο και δημιουργούμε μερικούς υποφακέλους:
434e6616f335599d241482f169f68f1b
Έχουμε τώρα την ακόλουθη δομή φακέλων:
434e6616f335599d241482f169f68f1b
Όπως αναμενόταν, μια κατάσταση git -u δεν μας δείχνει καμία αλλαγή:
Τώρα θα χρησιμοποιήσουμε το εύρημα για να δημιουργήσουμε τα αρχεία κράτησης θέσης σε όλες τις απαιτούμενες τοποθεσίες:
434e6616f335599d241482f169f68f1b
Έχουμε λάβει τώρα τον ακόλουθο φάκελο / δομή αρχείου:
434e6616f335599d241482f169f68f1b
Μια κατάσταση git -u μας δείχνει τώρα ότι όλοι οι φάκελοι (σιωπηρά) καταλήγουν στο αποθετήριο:
Εάν τώρα θέλουμε να διασφαλίσουμε ότι η δομή φακέλων καταλήγει πάντα στο αποθετήριο, αλλά όχι σε αρχεία (εκτός από τα αρχεία κράτησης θέσης), δημιουργούμε ένα gitignore:
434e6616f335599d241482f169f68f1b
Κάνουμε χρήση του Σύνταξη διπλού αστεριού:
434e6616f335599d241482f169f68f1b
Η πρώτη γραμμή αγνοεί αναδρομικά όλα τα αρχεία και τους φακέλους (σε οποιοδήποτε επίπεδο) στο φάκελο "foo", η δεύτερη γραμμή αποκλείει αναδρομικά όλους τους φακέλους από αυτόν τον κανόνα (σε οποιοδήποτε επίπεδο) και η τρίτη γραμμή αποκλείει όλα τα αρχεία .gitkeep (σε οποιοδήποτε επίπεδο) .
Τώρα ας δημιουργήσουμε μερικά δοκιμαστικά αρχεία:
434e6616f335599d241482f169f68f1b
Μια κατάσταση git -u μας δείχνει τώρα το επιθυμητό αποτέλεσμα: