Ponieważ Git nie zna folderów, tylko pliki, puste struktury folderów nie trafiają do repozytorium. Ponieważ jednak wiele frameworków i projektów absolutnie tego potrzebuje, powinny tam trafić. Powszechną praktyką jest tworzenie tak zwanych plików zastępczych (często nazywanych .gitkeep), które niejawnie określają strukturę folderów. Pliki te można łatwo utworzyć i, w razie potrzeby, upewnić się, że inne pliki w folderach są ignorowane.
Najpierw tworzymy repozytorium testowe i tworzymy podfoldery:
434e6616f335599d241482f169f68f1b
Mamy teraz następującą strukturę folderów:
434e6616f335599d241482f169f68f1b
Zgodnie z oczekiwaniami, status git -u nie pokazuje nam żadnych zmian:
Będziemy teraz używać funkcji find do tworzenia plików zastępczych we wszystkich wymaganych lokalizacjach:
434e6616f335599d241482f169f68f1b
Otrzymaliśmy teraz następującą strukturę folderów / plików:
434e6616f335599d241482f169f68f1b
Stan git -u pokazuje nam teraz, że wszystkie foldery (niejawnie) trafiają do repozytorium:
Jeśli teraz chcemy mieć pewność, że struktura folderów zawsze trafia do repozytorium, ale nie ma żadnych plików (poza plikami zastępczymi), tworzymy gitignore:
434e6616f335599d241482f169f68f1b
Korzystamy z Składnia podwójnej gwiazdy:
434e6616f335599d241482f169f68f1b
Pierwsza linia rekurencyjnie ignoruje wszystkie pliki i foldery (na dowolnym poziomie) w folderze „foo”, druga linia rekurencyjnie wyklucza wszystkie foldery (na dowolnym poziomie) z tej reguły, a trzecia linia wyklucza wszystkie pliki .gitkeep (na dowolnym poziomie) .
Teraz stwórzmy kilka plików testowych:
434e6616f335599d241482f169f68f1b
Status git -u pokazuje nam teraz pożądany wynik: