Quando si lavora con Git, mantenere pulito e organizzato il proprio repository non è solo una pratica consigliata, è essenziale per una collaborazione fluida e un efficiente controllo delle versioni. Ecco dove entra in gioco .gitignore
. Questo pratico file dice a Git quali file ignorare, evitando inutili confusione e mantenendo i tuoi commit concentrati su ciò che conta veramente.
Senza .gitignore
, il tuo repository può riempirsi rapidamente di file temporanei, log e altre cose che non appartengono al controllo delle versioni. Ancora peggio, potresti condividere accidentalmente informazioni sensibili.
In questo tutorial, imparerai come creare e utilizzare un file .gitignore
per mantenere ordinato il tuo progetto, evitare errori comuni e lavorare in modo più efficace con Git. Iniziamo!
Cosa è un File .gitignore?
Un file .gitignore
è un file di configurazione utilizzato in Git per istruire il sistema di controllo delle versioni su quali file o directory dovrebbero essere ignorati quando vengono preparate o effettuate modifiche.
Evita che file non necessari, come file temporanei, generati dal sistema o relativi alla compilazione, riempiano il tuo repository. Mantenere pulito il repository rende la collaborazione più semplice e garantisce che siano tracciati solo file essenziali.
Il file .gitignore
è un semplice file di testo posizionato nella directory principale del tuo repository Git. Contiene pattern che indicano a Git quali file o directory ignorare. Questi pattern possono essere personalizzati per adattarsi alle esigenze del tuo progetto, aiutandoti a mantenere un repository ben organizzato.
Se sei nuovo di Git e GitHub, ottieni un’introduzione facile per principianti al controllo di versione con questo tutorial su GitHub e Git.
Ecco alcune categorie comuni di file e directory che dovresti considerare di ignorare:
- Artefatti di build: File generati durante il processo di build che possono essere ricreati dal codice sorgente, come:
dist/
,build/
(output delle build frontend e backend)target/
(build in Java e altri linguaggi compilati)- Dipendenze: I sistemi di gestione dei pacchetti creano directory per le librerie installate, che non dovrebbero essere tracciate:
node_modules/
(Node.js)vendor/
(PHP, Composer).venv/
,venv/
(ambienti virtuali Python)- File specifici del sistema: Questi file sono generati automaticamente dal sistema operativo e non contribuiscono al progetto:
.DS_Store
(macOS)Thumbs.db
(Windows)- File di configurazione dell’IDE: Ogni sviluppatore può utilizzare un ambiente di sviluppo diverso, quindi le proprie impostazioni personali non dovrebbero essere incluse nel controllo di versione:
.vscode/
(VS Code).idea/
(IDE JetBrains).project
,.settings/
(Eclipse)- Log e file temporanei: I log, le cache e i file temporanei dovrebbero essere ignorati per prevenire un ingombro inutile:
*.log
,npm-debug.log*
,yarn-debug.log*
,yarn-error.log*
(Log di vari strumenti)*.tmp
,*.bak
(File temporanei e di backup).mypy_cache/
,__pycache__/
(Cache Python).ipynb_checkpoints/
(Checkpoints di Jupyter Notebook)- File di ambiente e segreti: Credenziali sensibili e configurazioni specifiche per l’ambiente non dovrebbero mai essere aggiunte:
.env
,.env.local
,.env.development
,.env.production
secrets.json
,config.json
(File di configurazione sensibili)- File di database e di archiviazione: Questi vengono generati localmente e non dovrebbero essere inclusi nel controllo delle versioni:
*.sqlite
,*.sqlite3
,*.db
(File di database SQLite)dump.rdb
(Dump del database Redis)- File di CI/CD e di copertura: I report di copertura dei test e altri artefatti di CI/CD dovrebbero essere ignorati:
coverage/
,*.lcov
(Report di copertura del codice).tox/
,.pytest_cache/
(file di test Python)
Necessità di installare Git? Segui la nostra guida passo passo in questo tutorial sull’installazione di Git per configurarti rapidamente.
Sintassi di .gitignore
Come accennato, i file .gitignore
contengono pattern che vengono confrontati con i nomi dei file nel tuo repository per determinare se devono essere ignorati o meno.
Sintassi di base
Essenzialmente, il file .gitignore
è composto da righe, ognuna rappresentante un pattern da ignorare. I pattern possono corrispondere a:
- File specifici
- Tipi di file
- Directory
Il file supporta anche commenti, che possono essere aggiunti iniziando una riga con #
, e linee vuote per migliorare la leggibilità.
Ecco una panoramica della struttura di base:
- Ignora un file specifico: Puoi elencare direttamente il nome del file da ignorare.
secrets.txt
- Ignora un’intera directory: Aggiungendo un
/
alla fine del nome della directory, puoi ignorare tutto ciò che si trova all’interno di quella directory.
logs/
- Ignora tutti i file di un tipo specifico: I caratteri jolly (
*
) possono essere utilizzati per ignorare tutti i file con un’estensione specifica.
*.py
- Negazione: Puoi usare
!
per negare un modello e tenere traccia esplicitamente di determinati file o directory che altrimenti verrebbero ignorati.
*.txt # Ignores all .txt files !readme.txt # Except for readme.txt
Come creare e utilizzare un file .gitignore
Creare e utilizzare .gitignore
è piuttosto semplice. In questa sezione, ti guiderò attraverso i passaggi.
Creare un file .gitignore
Passo 1: Naviga nella radice del tuo repository. Il file .gitignore
è solitamente posizionato nella directory principale di un progetto Git. Apri il tuo terminale o la riga di comando e naviga nella directory principale del tuo repository Git:
cd /path/to/your/repo
Passo 2: Crea il file .gitignore. Una volta nella directory principale, crea il file .gitignore
utilizzando un editor di testo o eseguendo un comando nel terminale, come:
touch .gitignore
Passo 3: Aggiungi modelli al fileApri il file .gitignore
in un editor di testo e aggiungi i modelli necessari per ignorare file o directory. Ogni riga rappresenta un modello diverso.
Ecco un esempio di file .gitignore
comunemente usato in un progetto di base:
# Ignora node_modules e directory delle dipendenze node_modules/ vendor/ # Ignora gli artefatti di build dist/ build/ *.log # Ignora file generati dal sistema .DS_Store Thumbs.db # Ignora file di ambiente e segreti .env config.json
Dopo aver aggiunto i modelli necessari, salva il file. Git adesso ignorerà automaticamente questi file quando si stanno preparando o committando modifiche.
Passaggio 4: Eseguire il commit del file nel repository. È importante eseguire il commit del file .gitignore
nel repository in modo che tutti i collaboratori utilizzino le stesse regole di ignoranza. Questo garantisce coerenza nel progetto per tutti coloro coinvolti.
git add .gitignore git commit -m "Add .gitignore file" git push
Una volta che il file .gitignore
è stato committato, si stabiliscono regole di ignoranza condivise per l’intero team.
Vuoi padroneggiare il push e pull in Git? Scopri come sincronizzare il tuo lavoro con i repository remoti in questo tutorial su Git push and pull.
Linee guida per l’uso di .gitignore
Mentre la creazione di un file .gitignore
è una parte semplice della gestione di un repository Git pulito, è importante seguire diverse best practices per garantire che il file sia gestito in modo efficace nel tempo.
Utilizzare un .gitignore globale
Per i developer che lavorano su più progetti, ci sono file specifici che si desidera escludere da ogni repository, indipendentemente dal tipo di progetto.
Al posto di aggiungerli al file .gitignore
di ciascun progetto, è possibile configurare un .gitignore
globale che si applica a tutti i repository sul sistema.
Per configurare un file .gitignore
globale:
- Creare un file
.gitignore_global
:
touch ~/.gitignore_global
- Aggiungi modelli per i file che desideri ignorare globalmente, come:
.DS_Store *.log /.vscode/ /.idea/
- Imposta Git per utilizzare il
.gitignore
globale:
git config --global core.excludesfile ~/.gitignore_global
Sfrutta i modelli esistenti
Invece di creare un file .gitignore
da zero per ogni nuovo progetto, puoi sfruttare modelli .gitignore
preconfigurati per linguaggi, framework o ambienti specifici.
Una delle migliori risorse per questi modelli è il repository ufficiale .gitignore di GitHub, dove puoi trovare file .gitignore
adattati a centinaia di linguaggi di programmazione e framework.
Controlla regolarmente il .gitignore
Man mano che i progetti evolvono, potrebbero essere necessari nuovi file e directory da includere nel file .gitignore
. È importante rivedere e aggiornare periodicamente il tuo file per riflettere lo stato attuale dei tuoi progetti.
Alcuni scenari in cui potresti dover aggiornare il file .gitignore
includono:
- Adottare nuovi strumenti o librerie che generano file aggiuntivi (ad esempio, passare a un nuovo sistema di build).
- Refactoring o riorganizzazione delle directory, che potrebbero comportare nuovi file che dovrebbero essere esclusi.
- Rimuovere file o directory obsoleti che non fanno più parte del progetto.
Risoluzione dei problemi di .gitignore
Anche dopo aver impostato un file .gitignore
, potresti incontrare scenari in cui file specifici vengono tracciati o i modelli non sembrano funzionare come previsto. Questa sezione tratterà due aree comuni di risoluzione dei problemi e come affrontarle.
Tracciamento di file già impegnati
Il file .gitignore
non si applica retroattivamente ai file già impegnati.
Se aggiungi un modello a .gitignore
dopo che determinati file sono già stati impegnati, Git continuerà a tracciarli anche se corrispondono al modello nel file .gitignore
.
Per smettere di tracciare file che sono già stati impegnati, segui questi passaggi:
- Rimuovi i file dal tracciamento di Git: Usa il comando
git rm
per rimuoverli dal repository mantenendoli nella tua directory di lavoro.
git rm --cached <file_or_directory_name>
- Effettua il commit delle modifiche: Dopo aver rimosso i file dal tracciamento di Git, effettua il commit delle modifiche per garantire che i file non facciano più parte della cronologia del controllo delle versioni.
git commit -m "Stop tracking ignored files"
- Esegui il push delle modifiche nel repository remoto: Infine, esegui il push delle modifiche nel repository remoto per garantire che i file non siano più tracciati.
git push
Dopo aver eseguito questi passaggi, Git smetterà di tenere traccia dei file. Il file commesso sarà ancora nella tua directory di lavoro ma sarà ignorato dai futuri commit basati sui tuoi modelli .gitignore
.
Assicurati che i modelli funzionino
A volte, potresti notare che file specifici che ti aspettavi di essere ignorati compaiono ancora nello stato di Git o vengono tracciati.
Segui questi passaggi per assicurarti che i tuoi modelli .gitignore
funzionino correttamente:
- Controlla lo stato dei tuoi file: Usa il comando
git status
per vedere quali file sono tracciati da Git. Questo ti aiuterà a verificare se i tuoi file ignorati sono ancora elencati.
git status
- Assicurati che il modello sia corretto: Controlla attentamente la sintassi dei pattern del tuo file
.gitignore
per assicurarti che siano formattati correttamente. Ad esempio: - Assicurati di utilizzare il percorso della directory corretto (relativo alla root del repository).
- Aggiungi un
/
per mirare directory specifiche e evitare il tracciamento di tutti i file con nomi simili.
- Aggiorna la cache: Se hai recentemente aggiornato il tuo file
.gitignore
e le modifiche non vengono applicate, Git potrebbe mantenere la cache precedente. Per aggiornare la cache, esegui il seguente comando:
git rm -r --cached . git add . git commit -m "Refresh .gitignore"
- Controllare le eccezioni:A volte, un modello specifico in
.gitignore
potrebbe essere sovrascritto da un modello più specifico altrove nel file. Controlla le tue regole per assicurarti che non ci siano pattern in conflitto.
Stai cercando un rapido riferimento a Git? Tieni a portata di mano i comandi essenziali con questa cheat sheet di Git.
Conclusione
Un file .gitignore
potrebbe sembrare piccolo, ma svolge un ruolo enorme nel mantenere pulito e gestibile il tuo repository Git. Ignorando file non necessari—come le dipendenze, gli artefatti di build e i file generati dal sistema—assicuri che il tuo progetto rimanga organizzato e privo di confusione.
In questo tutorial, hai imparato come creare un file .gitignore
, aggiungere modelli e applicare le migliori pratiche per mantenere il tuo repository efficiente. Con queste competenze, eviterai mal di testa legati al controllo delle versioni e renderai la collaborazione più fluida per tutti nel tuo team.
Se desideri approfondire le tue competenze in Git, dai un’occhiata a Git Fundamentals per un percorso di apprendimento strutturato. Puoi anche esplorare corsi pratici come Foundations of Git e Introduction to GitHub Concepts per costruire una solida comprensione del controllo delle versioni e dei flussi di lavoro collaborativi!