Git e cartelle vuote

Poiché Git non conosce cartelle, solo file, strutture di cartelle vuote non finiscono nel repository. Tuttavia, poiché molti framework e progetti ne hanno assolutamente bisogno, dovrebbero finire lì. Una pratica comune è creare i cosiddetti file segnaposto (spesso chiamati .gitkeep), che specificano implicitamente la struttura delle cartelle. Questi file possono essere creati facilmente e, se lo si desidera, assicurarsi che gli altri file nelle cartelle vengano ignorati.


Per prima cosa creiamo un repository di test e creiamo alcune sottocartelle:

434e6616f335599d241482f169f68f1b

Ora abbiamo la seguente struttura di cartelle:

434e6616f335599d241482f169f68f1b

Come previsto, un git status -u non ci mostra modifiche:

Git e cartelle vuote

Ora useremo find per creare i file segnaposto in tutte le posizioni richieste:

434e6616f335599d241482f169f68f1b

Abbiamo ora ricevuto la seguente struttura di cartelle / file:

434e6616f335599d241482f169f68f1b

Uno stato git -u ora ci mostra che tutte le cartelle (implicitamente) finiscono nel repository:

Git e cartelle vuote

Se ora vogliamo assicurarci che la struttura delle cartelle finisca sempre nel repository, ma non alcun file (a parte i file segnaposto), creiamo un gitignore:

434e6616f335599d241482f169f68f1b

Usiamo il Sintassi a doppia stella:

434e6616f335599d241482f169f68f1b

La prima riga ignora ricorsivamente tutti i file e le cartelle (a qualsiasi livello) nella cartella "foo", la seconda riga esclude ricorsivamente tutte le cartelle da questa regola (a qualsiasi livello) e la terza riga esclude tutti i file .gitkeep (a qualsiasi livello) .

Ora creiamo alcuni file di prova:

434e6616f335599d241482f169f68f1b

Un git status -u ora ci mostra il risultato desiderato:

Git e cartelle vuote

Indietro