Menu

Generatore di .gitignore

Crea un .gitignore pulito per qualsiasi stack: linguaggi, framework, IDE e sistemi operativi.

Di Nethanel Bar, Co-founder & CEO

Ultimo aggiornamento

Vuoi imparare a programmare sul serio?

Coddy ti insegna facendoti scrivere codice vero nel browser: lezioni interattive, feedback immediato e aiuto dall'AI quando ti blocchi.

Cos'è un generatore di .gitignore?

Ogni repository Git ha bisogno di un file .gitignore. È l'elenco in testo semplice dei percorsi che Git *non* deve tracciare: artefatti di build, cartelle delle dipendenze, configurazioni dell'IDE, file spazzatura del sistema operativo come .DS_Store. Senza di esso, il primo commit si trascina dietro per sbaglio node_modules/, .env e target/, e rimediare a quel pasticcio è molto più fastidioso che preparare bene il file fin dall'inizio.

Ogni ecosistema ignora cose diverse e la maggior parte dei progetti ne usa diversi insieme. Una tipica app Node + TypeScript su un portatile macOS con VS Code richiede già l'unione di quattro elenchi di esclusioni diversi. Scriverlo a mano a memoria significa dimenticare coverage/, esporre un .env o fare commit di una .idea/ rimasta dalla configurazione JetBrains di un collega.

Per questo il generatore raccoglie template selezionati dal progetto di riferimento github/gitignore, le stesse regole dietro i suggerimenti automatici ufficiali di GitHub, e ti permette di combinarli. Spunta le caselle che ti servono e ottieni un unico .gitignore senza duplicati da incollare direttamente nel repository. Nessun account, nessun caricamento, tutto nel browser.

Cosa imparerai creando il tuo .gitignore

  • I pattern di .gitignore usano la sintassi glob: *.log ignora tutti i file di log, build/ ignora una cartella, !important.log riammette un file specifico anche se un glob lo include.
  • I pattern valgono in relazione alla posizione del file .gitignore: un .gitignore dentro src/ riguarda solo i file sotto src/.
  • I file già tracciati **non** vengono ignorati retroattivamente. Se fai commit di node_modules/ e poi lo aggiungi a .gitignore, devi comunque eseguire git rm -r --cached node_modules per smettere di tracciarlo.
  • Possono coesistere più file .gitignore: nella radice del repository, nelle sottocartelle e uno globale ~/.gitignore_global per gli strumenti personali come JetBrains o il tuo sistema operativo.
  • L'ordine conta per le negazioni: un !pattern successivo funziona solo se una regola precedente ha davvero ignorato il file. Negare una cartella non può riammettere un file al suo interno.

Come generare un .gitignore passo dopo passo

  1. Scegli uno stack rapido (facoltativo)

    Se il tuo progetto corrisponde a una combinazione comune (Next.js, Django, Rails), clicca un preset per spuntare in una volta tutte le caselle pertinenti. Poi togline o aggiungine un paio se hai altro.

  2. Aggiungi i tuoi linguaggi

    Ogni linguaggio ha artefatti da ignorare: Node ha node_modules/, Python ha __pycache__/ e i virtualenv, Java ha target/ e i file .class. Scegli i linguaggi che il tuo progetto compila davvero.

  3. Aggiungi i tuoi framework

    Oltre alle regole del linguaggio, i framework aggiungono le proprie cartelle di build: Next.js vuole .next/ e .vercel, Django vuole staticfiles/ e db.sqlite3, Rails vuole tmp/ e /storage/*. Spunta il framework se lo usi.

  4. Aggiungi editor e sistema operativo

    Aggiungi i template degli editor usati dal **team** (non solo i tuoi): se qualcuno usa JetBrains o Vim, includili. Poi aggiungi i sistemi operativi del team: macOS lascia in giro .DS_Store, Windows Thumbs.db, ed è facile fare commit di entrambi per sbaglio.

  5. Copia o scarica

    Il pannello di destra mostra l'output combinato e senza duplicati. Premi **Copia** per incollarlo direttamente in un .gitignore nella radice del repository, oppure **Scarica** per salvare subito il file.

Riferimento rapido della sintassi .gitignore

I pattern che scriverai più spesso. Riferimento completo su git-scm.com/docs/gitignore.

PatternSignificatoEsempio
node_modulesIgnora un file o una cartella con esattamente questo nome, in qualsiasi punto dell'alberoCorrisponde sia a /node_modules sia a src/node_modules
node_modules/Barra finale: corrisponde solo a una **cartella**, non a un file con lo stesso nomeNon corrisponde a un file chiamato per caso node_modules
/buildBarra iniziale: ancora il pattern solo alla cartella del .gitignoreCorrisponde a /build ma non a src/build
*.logGlob: corrisponde a qualsiasi file che termina con .logCorrisponde a error.log, debug.log, logs/foo.log
!important.logNegazione: riammette un file specifico incluso da una regola precedenteAbbinalo a *.log per continuare a tracciare un solo file di log
docs/**/draftDoppio asterisco: corrisponde a draft in qualsiasi sottocartella di docs/Corrisponde a docs/v1/draft e docs/2025/q1/draft
# commentCommento: Git ignora le righe che iniziano con #Raggruppa le regole con intestazioni di sezione come # Node.js

Esempi di .gitignore da provare

Un .gitignore minimo per Node.js + macOS

Ciò che serve a ogni progetto Node su Mac

# Node.js node_modules/ npm-debug.log* dist/ .env .env.local # macOS .DS_Store ._*

Il minimo indispensabile per qualsiasi progetto Node condiviso con un collega su macOS. Anche un piccolo progetto personale dovrebbe avere queste regole: senza .DS_Store e node_modules/ combatterai conflitti inutili.

Python + Django + JetBrains

Stack Python lato server comune

# Python __pycache__/ *.py[cod] .venv .pytest_cache/ # Django *.log local_settings.py db.sqlite3 media/ staticfiles/ # JetBrains .idea/ *.iml

Un tipico backend Django sviluppato in PyCharm. Nota che il db.sqlite3 locale è ignorato: la produzione non lo usa mai, e fare commit espone dati di sviluppo e rompe i clone puliti dei colleghi.

Sovrascrivere una regola con una negazione

Ignora tutti i log tranne uno

*.log !keep-me.log

La prima riga ignora tutti i file .log. La regola !keep-me.log poi riammette quel file specifico. Le negazioni funzionano solo per file che una regola precedente ha davvero ignorato: non puoi riammettere un file dentro una cartella ignorata.

Errori comuni con .gitignore

  • Aggiungere .gitignore a cose fatte e aspettarsi che i file già in commit spariscano. Non succede: devi eseguire git rm -r --cached <path> per smettere di tracciarli.
  • Fare commit di un .env anche una sola volta. Basta un commit per lasciare il segreto per sempre nella cronologia del repository. Aggiungi .env* a .gitignore **prima** del primo commit e cambia qualsiasi segreto sia finito dentro.
  • Dimenticare i file specifici del sistema operativo nei repository condivisi. Se anche un solo collega usa macOS e il repository non ha una regola per .DS_Store, quei file compariranno nel diff di ogni PR e rallenteranno la revisione.
  • Provare a riammettere un file dentro una cartella ignorata. Una volta ignorato build/, nessuna negazione può reincludere build/keep.txt: Git non guarda nemmeno dentro la cartella. Riorganizza o sposta il file fuori.
  • Mettere nel .gitignore del progetto le configurazioni di editor che usi solo tu. Usi JetBrains in un team che lavora con VS Code? Metti .idea/ nel tuo ~/.gitignore_global **globale**.

Domande frequenti sul generatore di .gitignore

Da dove vengono questi template .gitignore?
I template sono condensati dal progetto open source github/gitignore, la stessa fonte che GitHub usa quando spunti "add .gitignore" creando un nuovo repository. Abbiamo ridotto ciascuno alle regole che servono davvero ai team e li abbiamo raggruppati per categoria.
Devo fare commit del file .gitignore stesso?
Sì. .gitignore è fatto per essere sotto controllo di versione e condiviso con il team. È il *contratto* su cosa va tracciato e cosa no. L'eccezione sono le preferenze personali (per esempio il tuo editor preferito): quelle vanno nel tuo ~/.gitignore_global globale.
Come smetto di tracciare un file già in commit?
Prima aggiungilo a .gitignore, poi esegui git rm --cached <path> (o git rm -r --cached <folder>) per rimuoverlo dall'indice senza cancellarlo dal disco. Fai commit di entrambe le modifiche insieme, così i colleghi vedono l'aggiornamento.
Posso avere più file .gitignore in un repository?
Sì. Git cerca un .gitignore in ogni cartella e applica le regole a quel sottoalbero. È utile nei monorepo in cui frontend e backend hanno regole di esclusione molto diverse: tieni nella radice le regole comuni per sistema operativo ed editor e metti le regole dei linguaggi nella cartella di ciascun pacchetto.
Che differenza c'è tra .gitignore e .git/info/exclude?
.gitignore va in commit ed è condiviso con il team. .git/info/exclude esiste solo nel tuo clone locale ed è per le esclusioni personali che non vuoi pubblicare. Per esclusioni valide in tutti i tuoi repository, usa invece un ~/.gitignore_global globale.

Scopri di più

Altri strumenti per sviluppatori

Illustrazione dei linguaggi di programmazione di Coddy

Impara a programmare con Coddy

INIZIA