Come ignorare una cartella o directory in Git
Guida pratica all'esclusione di directory: comportamento dello slash finale, percorsi ancorati alla radice, sottocartelle nidificate e salvaguardia delle cartelle vuote con .gitkeep.
In Git, l'aggiunta di uno slash finale (/) indica di verificare unicamente le cartelle, ignorando eventuali file regolari con lo stesso nome:
# Matches only directories named "build/" (e.g. /build/, /src/build/)
build/
# Matches BOTH a directory named "build" AND a file named "build"
buildUsa sempre lo slash finale quando il tuo obiettivo è escludere una cartella. In questo modo eviti di ignorare accidentalmente script o file privi di estensione.
Per impostazione predefinita, il nome di una cartella senza slash iniziale trova corrispondenza a qualsiasi profondità del repository:
# Matches "logs/" anywhere in the repository: /logs/, /apps/web/logs/, etc.
logs/
# Anchored: Matches "logs/" ONLY at the repository root
/logs/Quando desideri escludere specifiche cartelle interne senza scartare l'intera directory principale, combina i caratteri jolly con i percorsi:
# Ignore any folder named "temp" inside any "build" directory
build/**/temp/
# Ignore all subdirectories inside packages except package files
packages/*/dist/Git tiene traccia dei file e non delle cartelle vuote. Per mantenere comunque la struttura di una cartella (es. uploads/ o logs/), si utilizza la convenzione .gitkeep:
# 1. Ignore everything inside uploads/
uploads/*
# 2. But whitelist the .gitkeep file inside it
!uploads/.gitkeepSe una cartella principale è esclusa, non puoi reincludere una sottocartella direttamente con un punto esclamativo. Devi ignorare gli elementi interni:
# Ignore everything inside config/
config/*
# Whitelist production folder and its contents
!config/production/
!config/production/**Domande Frequenti
Risposte pratiche alle domande più comuni degli sviluppatori su regole .gitignore, cache e configurazione dei repository.
Qual è la differenza tra cartella e cartella/ in .gitignore?
'cartella/' corrisponde unicamente a cartelle. 'cartella' senza slash corrisponde sia a directory che a file regolari con lo stesso nome.
Come posso committare una cartella vuota in Git?
Crea un file vuoto denominato .gitkeep all'interno della cartella, ignora il contenuto con 'cartella/*' e aggiungi la regola '!cartella/.gitkeep'.
Come posso ignorare il contenuto di una cartella preservando la cartella stessa?
Utilizza 'cartella/*' anziché 'cartella/'. In questo modo vengono ignorati i file interni senza interrompere la scansione della cartella principale.
Guide e Riferimenti di .gitignore
Come ignorare file già tracciati in Git
La soluzione definitiva a un problema classico: rimuovere dall'indice file sensibili o generati che erano stati committati per errore prima del .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.
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.