Skip to content
Flussi di Lavoro5 min di letturaVerificato con Git 2.40+

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.

1. La regola dello slash finale: build/ vs build

In Git, l'aggiunta di uno slash finale (/) indica di verificare unicamente le cartelle, ignorando eventuali file regolari con lo stesso nome:

gitignore
# Matches only directories named "build/" (e.g. /build/, /src/build/)
build/

# Matches BOTH a directory named "build" AND a file named "build"
build
Migliore pratica

Usa sempre lo slash finale quando il tuo obiettivo è escludere una cartella. In questo modo eviti di ignorare accidentalmente script o file privi di estensione.

2. Cartelle relative alla radice vs corrispondenza ricorsiva

Per impostazione predefinita, il nome di una cartella senza slash iniziale trova corrispondenza a qualsiasi profondità del repository:

gitignore
# Matches "logs/" anywhere in the repository: /logs/, /apps/web/logs/, etc.
logs/

# Anchored: Matches "logs/" ONLY at the repository root
/logs/

3. Sottocartelle nidificate e caratteri jolly

Quando desideri escludere specifiche cartelle interne senza scartare l'intera directory principale, combina i caratteri jolly con i percorsi:

gitignore
# Ignore any folder named "temp" inside any "build" directory
build/**/temp/

# Ignore all subdirectories inside packages except package files
packages/*/dist/

4. Mantenere cartelle vuote con .gitkeep

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:

gitignore
# 1. Ignore everything inside uploads/
uploads/*

# 2. But whitelist the .gitkeep file inside it
!uploads/.gitkeep

5. Reinserire sottocartelle in modo sicuro

Se una cartella principale è esclusa, non puoi reincludere una sottocartella direttamente con un punto esclamativo. Devi ignorare gli elementi interni:

gitignore
# 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.

← Leggi guideApri nel generatore completo