Git kaj malplenaj dosierujoj

Ĉar Git ne konas dosierujojn, nur dosierojn, malplenajn dosierajn strukturojn ne finas en la deponejo. Tamen, ĉar multaj kadroj kaj projektoj absolute bezonas ĉi tion, ili devas fini tie. Ofta praktiko estas krei tiel nomatajn lokokupajn dosierojn (ofte nomatajn .gitkeep), kiuj implicite specifas la dosierujan strukturon. Ĉi tiuj dosieroj povas esti kreitaj facile kaj, se ili volas, ankaŭ certigas, ke aliaj dosieroj en la dosierujoj estas ignoritaj.


Unue ni kreas testan deponejon kaj kreas iujn subdosierujojn:

434e6616f335599d241482f169f68f1b

Ni nun havas la sekvan dosierujon:

434e6616f335599d241482f169f68f1b

Kiel atendite, git status -u montras al ni neniujn ŝanĝojn:

Git kaj malplenaj dosierujoj

Ni nun uzos find por krei la lokokupajn dosierojn ĉe ĉiuj bezonataj lokoj:

434e6616f335599d241482f169f68f1b

Ni nun ricevis la jenan dosierujon / dosierstrukturon:

434e6616f335599d241482f169f68f1b

Git-statuso -u nun montras al ni, ke ĉiuj dosierujoj (implicite) finiĝas en la deponejo:

Git kaj malplenaj dosierujoj

Se ni nun volas certigi, ke la dosierujo-strukturo ĉiam finiĝas en la deponejo, sed ne iuj dosieroj (krom la lokokupaj dosieroj), ni kreas gitignore:

434e6616f335599d241482f169f68f1b

Ni uzas la Duobla stela sintakso:

434e6616f335599d241482f169f68f1b

La unua linio rekursie ignoras ĉiujn dosierojn kaj dosierujojn (je iu ajn nivelo) en la dosierujo "foo", la dua linio rekursive ekskludas ĉiujn dosierujojn (je iu ajn nivelo) de ĉi tiu regulo kaj la tria linio ekskludas ĉiujn .gitkeep-dosierojn (je iu ajn nivelo) .

Nun ni kreu kelkajn testdosierojn:

434e6616f335599d241482f169f68f1b

Git-statuso nun montras al ni la deziratan rezulton:

Git kaj malplenaj dosierujoj

Reen