Spesso, all’interno di un progetto, esistono categorie di file che non si desidera vengano tracciati da Git né mostrati come untracked. Si tratta generalmente di file generati automaticamente, come log, file temporanei, file binari compilati o output di sistemi di build.
Per gestire questi casi, Git mette a disposizione il file speciale .gitignore, nel quale è possibile definire dei pattern che indicano i file o le directory da escludere dal controllo di versione.
Il file .gitignore è un semplice file di testo e il suo contenuto può essere del tipo:
# ignora tutti i file con estensione .a*.a# ma non ignorare lib.a!lib.a# ignora tutti i file con estensione .o o .a (tipici file oggetto o archivio generati da compilazioni).*.[oa]# ignora file con estensione .log e .tmp*.log*.tmp# ignora le cartelle il cui nome inizia per BackupBackup*/
Predisporre un file .gitignore fin dall’inizio del progetto è una buona pratica, perché evita di commettere accidentalmente file che non dovrebbero entrare nel repository.
- Le righe vuote o quelle che iniziano con # sono ignorate (commenti).
- I glob pattern standard funzionano e vengono applicati ricorsivamente a tutta la working tree.
- Un pattern che inizia con / evita la ricorsività e si applica solo alla directory corrente.
- Un pattern che termina con / indica una directory intera.
- Un pattern che inizia con ! nega la regola, quindi forza il tracciamento di file che sarebbero altrimenti ignorati.
I glob pattern sono simili a espressioni regolari semplificate, comunemente usate nelle shell:
- *
corrisponde a zero o più caratteri. - [abc]
corrisponde a un carattere tra quelli indicati (in questo caso a, b o c). - ?
corrisponde a un singolo carattere qualsiasi. - [0-9]
corrisponde a un carattere numerico da 0 a 9. - **
consente di corrispondere a directory nidificate (es. a/**/z corrisponde a a/z, a/b/z, a/b/c/z ecc.).
Normalmente, un progetto utilizza un unico file .gitignore nella directory principale, applicato ricorsivamente. Tuttavia, è possibile definire .gitignore aggiuntivi in sottodirectory: in questo caso, le regole si applicano solo ai file presenti sotto quella directory.
Per una descrizione completa delle regole supportate, è possibile consultare la pagina di manuale ufficiale con:
man gitignore
File .gitignore globali
Oltre ai .gitignore locali (specifici del progetto), è possibile definire un .gitignore globale valido per tutti i repository sullo stesso computer. Questo è utile per ignorare file tipici dell’ambiente di sviluppo personale (es. editor, IDE, sistema operativo).
Per configurarlo:
git config --global core.excludesfile C:/Users/<utente>/.gitignore_global
Nessun commento:
Posta un commento
I messaggi sono soggetti a moderazione da parte dell'amministratore prima della loro pubblicazione.