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

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


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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

434e6616f335599d241482f169f68f1b

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

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

Πίσω