I progetti che sottoporremo al controllo di versione operato da Git sono spesso particolarmente eterogenei. Contengono sì codice e risorse importanti ma anche molto materiale di lavoro o test che vorremmo Git non vedesse: pensiamo a file di testo con promemoria o istruzioni, file di log, cartelle di codice generato e via dicendo.
Per fare in modo che Git semplicemente non veda e, di conseguenza, non consideri proprio specifici file o cartelle è sufficiente inserire un file di nome .gitignore.
Facciamo un esempio.
Abbiamo predisposto una cartella con all’interno cinque file di cui due inseriti in una sottocartella. Ecco la struttura:
Sottoponiamo il tutto al controllo di git con la direttiva di inizializzazione git init e vediamo così apparire il nostro repository .git.
Con il comando git status possiamo sapere cosa, a questo punto, Git “vede”:
Tutti i file e cartelle al momento vengono presi in considerazione dal sistema di controllo di versione.
Creiamo un file denominato .gitignore dal seguente contenuto:
file04.txt
Editando nuovamente un il comando git status vedremo ora che git semplicemente ignorerà la presenza di file04.txt:
Se il contenuto di .gitignore diventasse il seguente:
file04.txt docs/
vedremmo che anche la cartella docs non vedrebbe vista:
Ci rendiamo conto così che Git attua delle politiche molto immediate anche per un aspetto importante come l’esclusione di determinati file.
Le regole che possono essere scritte all’interno di .gitignore sono molte ed accettano anche espressioni regolari come le seguenti:
- *.txt esclude tutti i file il cui nome termina con il suffisso txt;
- docs/**/* tutti i file contenuti in tutte le sottocartelle di docs;
- file0[23].txt è un modo per ignorare solo i file di nome file02.txt e file03.txt in quanto le parentesi quadre assoceranno un solo carattere del loro contenuto al resto della stringa.
Dopo aver definito le regole di esclusione, tutto il resto del lavoro proseguirà nella maniera consueta ma almeno saremo sicuri che saranno presi in considerazione solo ed esclusivamente i file che ci interessano davvero.
Alla prossima lezione su Git!















No Responses to “Git: ignorare liste di file con .gitignore”