Come ignorare file già tracciati in Git
La guida definitiva per risolvere uno dei dubbi più frequenti in Git: smettere di tracciare file sensibili o temporanei mantenendo le copie locali.
Per progettazione, il file .gitignore definisce regole valide esclusivamente per i file non tracciati (untracked). Nel momento in cui un file viene aggiunto con git add e registrato in un commit, Git ne monitora attivamente ogni modifica nel suo indice.
Git non smetterà mai di tracciare un file esistente per il solo fatto di aver inserito una nuova regola in .gitignore. Per applicare l'esclusione, è necessario rimuovere esplicitamente il file dall'indice di Git preservandone la copia fisica sul proprio disco.
.gitignore impedisce l'aggiunta involontaria di nuovi file al repository; non interrompe automaticamente il tracciamento di file già memorizzati da Git.
Utilizza l'opzione --cached con git rm per eliminare il file dall'indice senza toccare la copia salvata sul disco locale:
# 1. Assicurati che il file sia presente nel file .gitignore
echo ".env" >> .gitignore
# 2. Rimuovi il file solo dall'indice di Git
git rm --cached .env
# 3. Conferma la rimozione con un commit
git commit -m "Stop tracking .env file"Se è stata committata per errore un'intera cartella come build/ o node_modules/, specifica l'opzione ricorsiva -r assieme a --cached:
# 1. Aggiungi la cartella al file .gitignore
echo "build/" >> .gitignore
# 2. Rimuovi ricorsivamente la cartella dall'indice
git rm -r --cached build/
# 3. Esegui il commit
git commit -m "Stop tracking build/ output directory"Se molti file sono stati committati prima di impostare .gitignore, la soluzione più ordinata consiste nell'azzerare l'indice e riaggiungere i file secondo le nuove regole:
# 1. Verifica che lo stato di lavoro sia pulito o salvato con stash
git status
# 2. Rimuovi tutti i file dall'indice di Git
git rm -r --cached .
# 3. Riaggiungi i file applicando le regole del .gitignore
git add .
# 4. Registra l'indice aggiornato con un commit
git commit -m "Refresh repository tracking to match .gitignore"Il comando git rm --cached protegge il tuo file locale. Tuttavia, quando pubblichi questo commit, i colleghi che eseguiranno git pull riceveranno l'istruzione di eliminazione dal repository e Git rimuoverà la copia locale dalle loro macchine.
Informa sempre la squadra prima di rimuovere file di configurazione condivisi e predisponi un template pulito come .env.example.
Domande Frequenti
Risposte pratiche alle domande più comuni degli sviluppatori su regole .gitignore, cache e configurazione dei repository.
Perché Git continua a tracciare il mio file anche se è in .gitignore?
.gitignore agisce solo sui file non tracciati. Se il file è stato committato in precedenza, rimane nell'indice fino a quando non esegui 'git rm --cached <file>'.
Il comando git rm --cached cancella il file dal mio computer?
No. L'opzione --cached cancella il file unicamente dall'indice di Git. Il file fisico originale rimane intatto sul disco rigido.
Cosa accade quando gli altri membri del team eseguono git pull?
Poiché Git registra la cancellazione dal repository, git pull eliminerà quel file sui dispositivi dei colleghi. Fornisci un file .env.example per consentire loro di ripristinarlo.
Guide e Riferimenti di .gitignore
Guida alla sintassi e ai pattern di .gitignore
Spiegazione approfondita del formato dei pattern, globbing, slash iniziali e finali, eccezioni con punto esclamativo e intervalli di caratteri in Git.
Come ignorare una cartella in Git
Istruzioni chiare per escludere cartelle: significato dello slash terminale, percorsi relativi alla root, sottocartelle e cartelle vuote.
Esempi di .gitignore per stack moderni
Esempi pratici e curati per i linguaggi più diffusi, framework backend, sviluppo di videogiochi, app mobili e container Docker.