Git en lege mappen

Aangezien het bekend is dat Git geen mappen maar alleen bestanden kent, komen lege mapstructuren niet in de repository terecht. Maar omdat veel kaders en projecten ze absoluut nodig hebben, moeten ze daar terechtkomen. Een gangbare praktijk is het maken van zogenaamde tijdelijke bestanden (vaak .gitkeep genoemd) die impliciet de mapstructuur specificeren. Deze bestanden kunnen eenvoudig worden aangemaakt en kunnen er desgewenst ook voor zorgen dat andere bestanden in de mappen worden genegeerd.


Eerst maken we een testrepository en maken we een aantal submappen aan:

434e6616f335599d241482f169f68f1b

We hebben nu de volgende mappenstructuur:

434e6616f335599d241482f169f68f1b

Een git-status -u laat ons geen wijzigingen zien zoals verwacht:

Git en lege mappen

We gebruiken nu zoeken om de tijdelijke bestanden op alle vereiste locaties te maken:

434e6616f335599d241482f169f68f1b

We hebben nu de volgende map / bestandsstructuur ontvangen:

434e6616f335599d241482f169f68f1b

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

Git en lege mappen

Als we ervoor willen zorgen dat de mappenstructuur altijd in de repository terechtkomt, maar niet in bestanden (behalve de tijdelijke bestanden), maken we een gitignore:

434e6616f335599d241482f169f68f1b

We gebruiken de dubbele ster-syntaxis :

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 (op elk niveau) en de derde regel sluit alle .gitkeep-bestanden uit (op elk niveau) .

Nu maken we enkele testbestanden:

434e6616f335599d241482f169f68f1b

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

Git en lege mappen

Terug