Git en lege mappen

Aangezien Git geen mappen kent, alleen bestanden, komen lege mapstructuren niet in de repository terecht. Omdat veel kaders en projecten ze echter absoluut nodig hebben, zouden ze daar moeten eindigen. Een gangbare praktijk is het maken van zogenaamde placeholder-bestanden (vaak .gitkeep genoemd), die impliciet de mapstructuur specificeren. Deze bestanden zijn eenvoudig aan te maken en zorgen er desgewenst ook voor dat andere bestanden in de mappen worden genegeerd.


Eerst maken we een testrepository en maken we enkele submappen:

434e6616f335599d241482f169f68f1b

We hebben nu de volgende mappenstructuur:

434e6616f335599d241482f169f68f1b

Zoals verwacht laat een git-status -u ons geen wijzigingen zien:

Git en lege mappen

We zullen nu find gebruiken om de placeholder-bestanden op alle vereiste locaties te maken:

434e6616f335599d241482f169f68f1b

We hebben nu de volgende map- / bestandsstructuur ontvangen:

434e6616f335599d241482f169f68f1b

Een git-status -u laat nu zien dat alle mappen (impliciet) in de repository terechtkomen:

Git en lege mappen

Als we er nu voor willen zorgen dat de mappenstructuur altijd in de repository terecht komt, maar geen bestanden (behalve de placeholder-bestanden), maken we een gitignore:

434e6616f335599d241482f169f68f1b

We maken gebruik van de Syntaxis met dubbele ster:

434e6616f335599d241482f169f68f1b

De eerste regel negeert recursief alle bestanden en mappen (op elk niveau) in de map "foo", de tweede regel sluit recursief alle mappen uit van deze regel (op elk niveau) en de derde regel sluit alle .gitkeep-bestanden uit (op elk niveau) .

Laten we nu enkele testbestanden maken:

434e6616f335599d241482f169f68f1b

Een git status -u laat ons nu het gewenste resultaat zien:

Git en lege mappen

Terug