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

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

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