Generatore di .gitignore — Template per ogni linguaggio e IDE

Combina template .gitignore per linguaggi, framework, editor e sistemi operativi in un unico file pulito.

Avvio rapido
Premi Invio per aggiungere il primo risultato.
Node.jsmacOSWindowsVisual Studio Code
Linguaggio
Framework
Editor / IDE
Sistema operativo
Strumento / piattaforma
.gitignore
### Node.js ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Coverage
coverage
*.lcov
.nyc_output

# Dependencies
node_modules/
jspm_packages/
bower_components

# Caches
.npm
.eslintcache
.stylelintcache
.cache
.parcel-cache
*.tsbuildinfo
.node_repl_history
*.tgz

# Yarn
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Environment
.env
.env.*
!.env.example

# Build output
dist
build
out

### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Custom folder icons (the real file name is "Icon" followed by a carriage return)
Icon?

# Thumbnails
._*

# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent

# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk

### Windows ###
# Windows thumbnail cache files
Thumbs.db
Thumbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db

# Dump file
*.stackdump

# Folder config file
[Dd]esktop.ini

# Recycle Bin used on file shares
$RECYCLE.BIN/

# Windows Installer files
*.cab
*.msi
*.msix
*.msm
*.msp

# Windows shortcuts
*.lnk

### Visual Studio Code ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets

# Local History for Visual Studio Code
.history/

# Built Visual Studio Code Extensions
*.vsix
74 pattern

I browser spesso salvano un file che inizia con il punto come “gitignore.txt”; rinominalo esattamente .gitignore nella cartella principale del progetto.

Funziona interamente nel browser. I modelli sono inclusi nella pagina; nulla viene scaricato o inviato. Sfoglia tutti gli strumenti gratuiti.

Hai trovato un problema o qualcosa che potrebbe andare meglio? Leggiamo ogni messaggio e sistemiamo le cose in fretta.

Questo generatore di .gitignore crea un file .gitignore a partire dai template per i linguaggi, i framework, gli editor e i sistemi operativi del tuo progetto. Scegli Node.js, Python, Unity, JetBrains, macOS o uno qualsiasi degli oltre 60 disponibili, oppure parti da uno stack come “app Next.js”, e i template vengono uniti in un unico file con un'intestazione per ogni sezione. I pattern che compaiono in più template vengono scritti una volta sola.

I template sono basati sulla diffusissima raccolta github/gitignore, ripuliti dai lunghi blocchi di commenti e inclusi nella pagina, quindi funziona offline e nulla del tuo progetto viene inviato da nessuna parte. La rimozione dei duplicati è fatta con cautela perché .gitignore dipende dall'ordine: quando un template reinclude qualcosa con una regola “!”, i duplicati successivi vengono mantenuti per non rischiare di cambiare ciò che viene ignorato. Un .gitignore agisce solo sui file non tracciati; consulta le domande frequenti per i file che Git traccia già.

Come si usa

  1. Fai clic su uno stack predefinito, oppure cerca i template e spunta quelli usati dal tuo progetto: linguaggio, framework, editor e sistema operativo.
  2. Rimuovi quelli che non ti servono con la × sulla relativa etichetta.
  3. Aggiungi le regole specifiche del progetto, come una cartella uploads/, in “Le tue regole”.
  4. Copia il risultato, oppure scaricalo e salvalo come .gitignore nella radice del repository.
  5. Fai il commit: git add .gitignore && git commit -m "Add .gitignore".

Domande frequenti

Perché un file è ancora tracciato dopo averlo aggiunto a .gitignore?

Un .gitignore impedisce solo che vengano aggiunti file non tracciati. Se Git traccia già il file, continua a tracciarlo. Rimuovilo dall'indice senza cancellarlo dal disco con git rm --cached percorso/del/file (o git rm -r --cached cartella/), poi fai il commit. Se conteneva un segreto, il segreto è ancora nella cronologia e va sostituito.

Il file .gitignore va committato?

Sì. Deve stare nel repository, così chiunque cloni il progetto ignora le stesse cartelle di build e di dipendenze. Le regole che valgono solo per te, come i file del tuo editor, possono andare in .git/info/exclude per un singolo repository oppure in un file di ignore globale impostato con git config --global core.excludesFile ~/.gitignore_global.

package-lock.json o yarn.lock vanno ignorati?

No, per le applicazioni il file di lock va committato. Registra le versioni esatte delle dipendenze che sono state testate, così ogni installazione e ogni esecuzione della CI ottiene lo stesso albero. Lo stesso vale per poetry.lock, Pipfile.lock, Cargo.lock per i binari, Gemfile.lock e composer.lock. Nessuno dei template qui li ignora.

Cosa significano i pattern?

Una barra finale (build/) corrisponde solo alle cartelle. Una barra iniziale (/build) ancora il pattern alla cartella che contiene il .gitignore. * corrisponde a qualsiasi cosa tranne una barra, ** attraversa le cartelle (logs/**/*.log) e ? corrisponde a un singolo carattere. Una riga che inizia con ! reinclude qualcosa escluso da un pattern precedente, e # inizia un commento, ma solo a inizio riga.

Perché la mia regola di negazione (!) non funziona?

Git non può reincludere un file se una delle sue cartelle superiori è esclusa, perché non guarda mai dentro una cartella ignorata. Invece di ignorare la cartella (logs/), ignora il suo contenuto (logs/*) e poi reincludi il file (!logs/.gitkeep). Conta anche l'ordine: la riga con ! deve venire dopo il pattern che sovrascrive.

Posso verificare perché un file viene ignorato?

Sì: git check-ignore -v percorso/del/file mostra il file .gitignore, il numero di riga e il pattern che corrisponde. git status --ignored elenca tutti i file ignorati nella working tree.

Cosa mettere in un .gitignore

• Le dipendenze che un gestore di pacchetti reinstalla: node_modules/, vendor/, .venv/, Pods/.

• Output di build e cache: dist/, build/, target/, .next/, __pycache__/, *.class, report di copertura.

• Segreti locali e file d'ambiente: .env, *.pem, JSON con credenziali. Committa invece un .env.example con valori segnaposto.

• File superflui di editor e sistema operativo: .DS_Store, Thumbs.db, .idea/, gran parte di .vscode/.

• Log, crash dump e database locali: *.log, *.sqlite (a meno che il database non sia una fixture voluta).

Da tenere nel repository: sorgenti, file di lock, la configurazione che serve a ogni sviluppatore e le impostazioni condivise dell'editor come .vscode/extensions.json, che il template VS Code reinclude di proposito.

Dove Git cerca le regole di ignore

Git combina diverse fonti, dalla priorità più alta alla più bassa: i pattern passati dalla riga di comando; i file .gitignore nella stessa cartella del percorso e poi in ogni cartella superiore fino alla radice del repository (un .gitignore in una sottocartella vale solo al di sotto di essa); .git/info/exclude, che è locale e non viene mai committato; e il file globale indicato da core.excludesFile, che per impostazione predefinita è ~/.config/git/ignore. Metti le regole per sistema operativo ed editor nel file globale se preferisci che i .gitignore del progetto riguardino solo il progetto.

Strumenti gratuiti correlati

  • Calcolatore chmod — Seleziona le caselle di lettura, scrittura ed esecuzione per ottenere il modo ottale e il comando chmod, oppure decodifica 755, 644 e rwxr-xr-x.
  • Docker Run ⇄ Compose — Trasforma un comando docker run in un servizio docker-compose.yml, o un servizio Compose di nuovo in docker run.
  • Tester regex — Prova un'espressione regolare su un testo di esempio con evidenziazione delle corrispondenze in tempo reale, gruppi di cattura e anteprima della sostituzione. Gratis, nel browser.
  • Formattatore JSON — Formatta, minifica e valida JSON, con gli errori di parsing localizzati per riga e colonna. Nel tuo browser, senza upload.