Git i puste foldery

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:

Git i puste foldery

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:

Git i puste foldery

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:

Git i puste foldery

Plecy