Omdat Git geen mappen kent, alleen bestanden, komen lege mapstructuren niet in de repository terecht. Omdat veel raamwerken en projecten deze absoluut nodig hebben, zouden ze daar terecht moeten komen. Een gebruikelijke praktijk is het maken van zogenaamde placeholder-bestanden (vaak .gitkeep genoemd), die impliciet de mapstructuur specificeren. U kunt deze bestanden eenvoudig aanmaken en er desgewenst voor zorgen 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:

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:

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:
