Vai al contenuto principale

Come usare .gitignore: un’introduzione pratica con esempi

Scopri come usare .gitignore per mantenere pulito il tuo repository Git. Questo tutorial copre le basi, casi d’uso comuni ed esempi pratici per iniziare subito!
Aggiornato 3 giu 2026  · 8 min leggi

Quando lavori con Git, mantenere il repository pulito e ordinato non è solo una best practice: è essenziale per collaborare senza intoppi e gestire le versioni in modo efficiente. È qui che entra in gioco .gitignore. Questo pratico file dice a Git quali file ignorare, prevenendo disordine inutile e mantenendo i commit focalizzati su ciò che conta davvero.

Senza .gitignore, il tuo repo può riempirsi rapidamente di file temporanei, log e altre cose che non appartengono al controllo versione. Ancora peggio, potresti condividere accidentalmente informazioni sensibili.

In questo tutorial imparerai a creare e usare un file .gitignore per tenere in ordine il progetto, evitare gli errori più comuni e lavorare in modo più efficace con Git. Cominciamo!

Che cos’è un file .gitignore?

Un file .gitignore è un file di configurazione usato in Git per istruire il sistema di controllo versione su quali file o directory ignorare quando si mettono in stage o si eseguono commit delle modifiche. 

Impedisce che file non necessari—come file temporanei, generati dal sistema o relativi alla build—ingombrino il tuo repository. Mantenere pulito il repository rende la collaborazione più facile e assicura che vengano tracciati solo i file essenziali.

Il file .gitignore è un semplice file di testo posto nella directory radice del tuo repository Git. Contiene pattern che dicono a Git quali file o directory ignorare. Questi pattern possono essere personalizzati in base alle esigenze del progetto, aiutandoti a mantenere un repository ben organizzato.

Nuovo su Git e GitHub? Ottieni un’introduzione al controllo versione adatta ai principianti 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 di build frontend e backend)
    • target/ (build Java e di 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 IDE: Ogni sviluppatore può usare un ambiente diverso, quindi le impostazioni personali non dovrebbero essere incluse nel controllo versione:
    • .vscode/ (VS Code)
    • .idea/ (IDE JetBrains)
    • .project, .settings/ (Eclipse)
  • Log e file temporanei: Log, cache e file temporanei dovrebbero essere ignorati per evitare disordine 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/ (checkpoint Jupyter Notebook)
  • File di ambiente e segreti: Credenziali sensibili e configurazioni specifiche dell’ambiente non dovrebbero mai essere versionate:
    • .env, .env.local, .env.development, .env.production
    • secrets.json, config.json (file di configurazione sensibili)
  • File di database e storage: Sono generati in locale e non dovrebbero essere inclusi nel controllo versione:
    • *.sqlite, *.sqlite3, *.db (file database SQLite)
    • dump.rdb (dump database Redis)
  • File di CI/CD e coverage: I report di copertura e altri artefatti CI/CD dovrebbero essere ignorati:
    • coverage/, *.lcov (report di copertura del codice)
    • .tox/, .pytest_cache/ (file di testing Python)

Ti serve installare Git? Segui la nostra guida passo passo nel tutorial di installazione di Git per configurarlo 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 debbano essere ignorati o meno.

Sintassi di base

Alla base, il file .gitignore è composto da righe, ognuna delle quali rappresenta un pattern da ignorare. I pattern possono corrispondere a:

  • File specifici
  • Tipi di file
  • Directory 

Il file supporta anche i commenti, che si aggiungono iniziando una riga con #, e le righe vuote per migliorare la leggibilità.

Ecco una panoramica della struttura di base:

  • Ignorare un file specifico: puoi elencare direttamente il nome del file per ignorarlo.
secrets.txt
  • Ignorare un’intera directory: aggiungendo uno / alla fine del nome della directory, puoi ignorare tutto ciò che contiene.
logs/
  • Ignorare tutti i file di un certo tipo: i jolly (*) possono essere usati per ignorare tutti i file con una specifica estensione.
*.py
  • Negazione: puoi usare ! per negare un pattern e tracciare esplicitamente determinati file o directory che altrimenti verrebbero ignorati.
*.txt  # Ignores all .txt files
!readme.txt  # Except for readme.txt

Come creare e usare un file .gitignore

Creare e usare .gitignore è piuttosto semplice. In questa sezione ti guiderò attraverso i passaggi.

Creare un file .gitignore

Passaggio 1: vai alla radice del repository. Il file .gitignore si trova di solito nella directory radice di un progetto Git. Apri il terminale o la riga di comando e spostati nella directory radice del tuo repository Git:

cd /path/to/your/repo

Passaggio 2: crea il file .gitignore. Una volta nella directory radice, crea il file .gitignore usando un qualsiasi editor di testo o eseguendo un comando nel terminale, ad esempio:

touch .gitignore

Passaggio 3: aggiungi i pattern al file. Apri il file .gitignore in un editor di testo e aggiungi i pattern necessari per ignorare file o directory. Ogni riga rappresenta un pattern diverso.

Ecco un esempio di file .gitignore comunemente usato in un progetto di base:

# Ignore node_modules and dependency directories
node_modules/
vendor/

# Ignore build artifacts
dist/
build/
*.log

# Ignore system-generated files
.DS_Store
Thumbs.db

# Ignore environment and secret files
.env
config.json

Dopo aver aggiunto i pattern necessari, salva il file. D’ora in poi Git ignorerà automaticamente questi file quando metti in stage o esegui commit delle modifiche.

Passaggio 4: esegui il commit del file nel repository. È importante eseguire il commit del file .gitignore nel repository in modo che tutti i collaboratori usino le stesse regole di esclusione. Questo garantisce coerenza nel progetto per tutte le persone coinvolte.

git add .gitignore
git commit -m "Add .gitignore file"
git push

Una volta eseguito il commit del file .gitignore, stabilisci regole di esclusione condivise per tutto il team.

Vuoi padroneggiare push e pull in Git? Impara a sincronizzare il tuo lavoro con i repositori remoti in questo tutorial su git push e pull.

Best practice per usare .gitignore

Creare un file .gitignore è un passaggio semplice per mantenere pulito un repository Git, ma ci sono diverse best practice da seguire per gestirlo in modo efficace nel tempo.

Usa un .gitignore globale

Per gli sviluppatori che lavorano su più progetti, ci sono file specifici che potresti voler escludere da ogni repository, indipendentemente dal tipo di progetto.

Invece di aggiungerli al .gitignore di ciascun progetto, puoi configurare un .gitignore globale che si applica a tutti i repository sul tuo sistema.

Per configurare un file .gitignore globale:

  • Crea un file .gitignore_global:
touch ~/.gitignore_global
  • Aggiungi pattern per i file che vuoi ignorare globalmente, ad esempio:
.DS_Store
*.log
/.vscode/
/.idea/
  • Imposta Git per usare il .gitignore globale:
git config --global core.excludesfile ~/.gitignore_global

Sfrutta i template esistenti

Invece di creare da zero un file .gitignore per ogni nuovo progetto, puoi sfruttare template .gitignore preconfigurati per linguaggi, framework o ambienti specifici.

Una delle migliori risorse per questi template è il repository ufficiale .gitignore di GitHub, dove puoi trovare file .gitignore pensati per centinaia di linguaggi di programmazione e framework.

Rivedi regolarmente il .gitignore

Man mano che i progetti evolvono, nuovi file e directory potrebbero dover essere inclusi nel file .gitignore. È importante rivedere e aggiornare periodicamente il file per riflettere lo stato attuale dei tuoi progetti.

Alcuni scenari in cui potresti dover aggiornare il file .gitignore includono:

  • Adozione di nuovi strumenti o librerie che generano file aggiuntivi (ad es., passaggio a un nuovo sistema di build).
  • Refactoring o riorganizzazione delle directory, che può produrre nuovi file da escludere.
  • Rimozione di file o directory obsoleti che non fanno più parte del progetto.

Risoluzione dei problemi con .gitignore

Anche dopo aver configurato un file .gitignore, potresti imbatterti in situazioni in cui determinati file vengono tracciati o i pattern non sembrano funzionare come previsto. Questa sezione copre due aree comuni di troubleshooting e come risolverle.

File già confermati in tracking 

Il file .gitignore non si applica retroattivamente ai file già confermati. 

Se aggiungi un pattern a .gitignore dopo che certi file sono già stati confermati, Git continuerà a tracciarli anche se corrispondono al pattern nel file .gitignore.

Per interrompere il tracking di file già confermati, segui questi passaggi:

  • Rimuovi i file dal tracking di Git: usa il comando git rm per rimuoverli dal repository mantenendoli nella tua working directory.
git rm --cached <file_or_directory_name>
  • Esegui il commit delle modifiche: dopo aver rimosso i file dal tracking di Git, esegui il commit delle modifiche per assicurarti che i file non facciano più parte della cronologia del controllo versione.
git commit -m "Stop tracking ignored files"
  • Esegui il push delle modifiche al repository remoto: infine, esegui il push delle modifiche al repository remoto per assicurarti che i file non siano più tracciati.
git push

Dopo questi passaggi, Git smetterà di tracciare i file. Il file confermato sarà ancora nella tua working directory ma verrà ignorato dai commit futuri in base ai tuoi pattern nel .gitignore.

Verificare che i pattern funzionino 

A volte potresti notare che determinati file che ti aspettavi venissero ignorati compaiono comunque nello status di Git o risultano tracciati. 

Segui questi passaggi per assicurarti che i tuoi pattern in .gitignore funzionino correttamente:

  • Controlla lo stato dei file: usa il comando git status per vedere quali file sono tracciati da Git. Questo ti aiuterà a verificare se i file ignorati sono ancora elencati.
git status
  • Assicurati che il pattern sia corretto: ricontrolla la sintassi dei tuoi pattern in .gitignore per accertarti che siano formattati correttamente. Ad esempio:
    • Assicurati di usare il percorso di directory corretto (relativo alla radice del repository).
    • Aggiungi uno / per indirizzare directory specifiche ed evitare di tracciare tutti i file con nomi simili.
  • Aggiorna la cache: se hai aggiornato di recente il tuo file .gitignore e le modifiche non vengono applicate, è possibile che Git stia mantenendo la cache precedente. Per aggiornarla, esegui il seguente comando:
git rm -r --cached .
git add .
git commit -m "Refresh .gitignore"
  • Controlla le eccezioni: a volte un pattern specifico in .gitignore può essere sovrascritto da un pattern più specifico altrove nel file. Rivedi le tue regole per assicurarti che non ci siano pattern in conflitto.

Cerchi un riferimento rapido a Git? Tieni i comandi essenziali a portata di mano con questo cheat sheet di Git.

Conclusione

Un file .gitignore può sembrare piccolo, ma svolge un ruolo enorme nel mantenere il tuo repository Git pulito e gestibile. Ignorando i file non necessari—come dipendenze, artefatti di build e file generati dal sistema—mantieni il progetto organizzato e privo di ingombro.

In questo tutorial hai imparato a creare un file .gitignore, ad aggiungere pattern e ad applicare le best practice per mantenere efficiente il tuo repo. Con queste competenze eviterai grattacapi con il controllo versione e renderai la collaborazione più fluida per tutto il team.

Se vuoi approfondire le tue competenze con 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 versione e dei flussi di lavoro collaborativi!

FAQs

Il file .gitignore rimuove i file già tracciati da Git?

No, .gitignore impedisce solo che i nuovi file vengano tracciati. Se un file è già sotto controllo versione, aggiungerlo a .gitignore non lo rimuoverà. Per smettere di tracciare un file già confermato, devi usare:

git rm --cached filename

Poi esegui il commit delle modifiche.

Posso avere più file .gitignore in un progetto?

Certo! Puoi inserire file .gitignore in diverse directory del tuo progetto. Ognuno si applica solo ai file nella propria directory e nelle sottodirectory.

Come faccio a ignorare tutti i file di un certo tipo?

Puoi usare i jolly. Ad esempio, per ignorare tutti i file .log:

*.log

Questo escluderà tutti i file con estensione .log.

Posso ignorare un file specifico ma continuare a tracciarlo per il mio lavoro?

Sì, ma devi assicurarti manualmente che non venga confermato. Un modo per farlo è usare git update-index --assume-unchanged filename, una soluzione temporanea. Un approccio migliore è usare un file .gitignore globale (vedi domanda successiva).

Che cos’è un file .gitignore globale e come si configura?

Un .gitignore globale serve a ignorare file in tutti i repository sulla tua macchina. È utile per file specifici del sistema come .DS_Store o Thumbs.db. Per creare e configurare un .gitignore globale:

git config --global core.excludesfile ~/.gitignore_global

Poi aggiungi i pattern a ~/.gitignore_global secondo necessità.

Perché il mio file .gitignore non funziona?

Se .gitignore non sta ignorando un file, verifica questi problemi comuni:

  • Il file è già tracciato: devi rimuoverlo usando git rm --cached filename.
  • Il pattern in .gitignore potrebbe essere errato: ricontrolla la sintassi.
  • C’è una regola in conflitto: Git applica l’ultima regola corrispondente, quindi l’ordine conta.

Posso ignorare una directory ma mantenere un file specifico al suo interno?

Sì! Usa una regola di esclusione. Ad esempio, per ignorare tutto in una cartella tranne keepme.txt:

folder_name/*
!folder_name/keepme.txt

Cosa succede se due membri del team hanno file .gitignore diversi?

Se .gitignore è versionato nel repository, tutti i membri del team seguiranno le stesse regole. Tuttavia, se qualcuno modifica .gitignore in locale ma non conferma il cambiamento, potrebbe avere file ignorati diversi. È meglio mantenere .gitignore versionato e concordato dal team.

Come posso verificare quali file vengono ignorati?

Esegui il seguente comando per vedere cosa viene escluso da .gitignore:

git status --ignored

Oppure, per un elenco più dettagliato:

git check-ignore -v filename

Posso annullare l’ignorare di un file in .gitignore?

Certo! Rimuovi il file da .gitignore e poi traccia di nuovo il file usando:

git add filename

Poi esegui il commit delle modifiche.


Kurtis Pykes 's photo
Author
Kurtis Pykes
LinkedIn
Argomenti

Scopri di più su Git con questi corsi!

Corso

Introduzione ai concetti di GitHub

2 h
43K
Impara a usare le varie funzioni di GitHub, a muoverti nell'interfaccia e a fare le cose di tutti i giorni in modo collaborativo.
Vedi dettagliRight Arrow
Inizia il corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra altroMostra altro