Git i puste foldery

Ponieważ wiadomo, że Git nie zna folderów, a jedynie pliki, puste struktury folderów nie trafiają do repozytorium. Ponieważ jednak wiele ram i projektów absolutnie ich potrzebuje, powinny tam się znaleźć. Powszechną praktyką jest tworzenie tak zwanych plików zastępczych (często nazywanych .gitkeep), które domyślnie określają strukturę folderów. Pliki te można łatwo utworzyć i, w razie potrzeby, zapewnić, że inne pliki w folderach zostaną zignorowane.


Najpierw tworzymy repozytorium testowe i tworzymy niektóre podfoldery:

434e6616f335599d241482f169f68f1b

Mamy teraz następującą strukturę folderów:

434e6616f335599d241482f169f68f1b

Status git -u pokazuje nam brak zmian zgodnie z oczekiwaniami:

Git i puste foldery

Teraz używamy find do tworzenia plików zastępczych we wszystkich wymaganych lokalizacjach:

434e6616f335599d241482f169f68f1b

Otrzymaliśmy teraz następującą strukturę folderów / plików:

434e6616f335599d241482f169f68f1b

Status git -u pokazuje nam teraz, że wszystkie foldery (niejawnie) trafiają do repozytorium:

Git i puste foldery

Jeśli chcemy mieć pewność, że struktura folderów zawsze kończy się w repozytorium, ale nie w żadnych plikach (oprócz plików zastępczych), tworzymy gitignore:

434e6616f335599d241482f169f68f1b

Używamy składni podwójnej gwiazdy :

434e6616f335599d241482f169f68f1b

Pierwszy wiersz rekurencyjnie ignoruje wszystkie pliki i foldery (na dowolnym poziomie) w folderze „foo”, drugi wiersz rekurencyjnie wyklucza wszystkie foldery (na dowolnym poziomie) rekurencyjnie z tej reguły, a trzeci wiersz wyklucza wszystkie pliki .gitkeep (na dowolnym poziomie) .

Teraz tworzymy niektóre pliki testowe:

434e6616f335599d241482f169f68f1b

Status git -u pokazuje nam teraz pożądany wynik:

Git i puste foldery

Plecy