Corso
Quando lavori su un repository Git, è normale accumulare file e directory non tracciati che non fanno parte del sistema di controllo versione del repository. Possono essere file temporanei, artefatti di build o altri file creati in locale che non vengono commitati. Con il tempo, questi file possono affollare la working directory, rendendo più difficile mantenere uno spazio di lavoro pulito e ordinato.
Per risolvere questo problema, Git fornisce il comando git clean, che rimuove file e directory non tracciati. In questa guida ti mostrerò come usare in sicurezza git clean, le sue diverse opzioni e le buone pratiche per evitare eliminazioni indesiderate mantenendo il tuo repository Git in ordine. Per approfondire, ti consiglio i corsi Foundations of Git e Introduction to GitHub Concepts per imparare il controllo versione e la differenza tra Git e GitHub.
Capire git clean
Il comando git clean è uno strumento utile in Git che rimuove i file non tracciati dalla working directory. Il comando git clean è utile quando hai bisogno di riportare la tua working directory a uno stato impeccabile, ad esempio prima di cambiare branch o dopo aver eseguito processi di build che generano file temporanei. Tuttavia, il comando git clean va usato con cautela perché elimina in modo permanente file e directory non tracciati senza spostarli nel cestino.
A differenza di git reset o git checkout, che modificano i file tracciati, git clean gestisce esclusivamente file e directory che non sono sotto controllo versione. Questo include:
-
File temporanei creati dalle build
-
File di log o dati in cache
-
File elencati in .gitignore (se specificato esplicitamente con
-x)
Il comando git clean è utile per mantenere ordinata la working directory, completando altri comandi Git come git reset e git checkout, che gestiscono le modifiche ai file tracciati.
Trovo che la Complete Git Cheat Sheet sia una pratica guida di riferimento per i comandi Git più comuni.
Utilizzi comuni di git clean
Il comando git clean è uno strumento utile per mantenere pulita la working directory. Di seguito alcuni casi d’uso comuni in cui git clean può rimuovere in sicurezza file e directory non necessari.
Rimozione dei file non tracciati
Lavorando in un repository Git, i file non tracciati possono accumularsi nel tempo. Le seguenti opzioni aiutano a rimuoverli:
-
git clean -f: forza la rimozione dei file non tracciati. -
git clean -fd: rimuove file e directory non tracciati. -
git clean -fx: rimuove file non tracciati e ignorati, come quelli elencati in.gitignore.
Tuttavia, usa con cautela l’opzione -fx perché rimuove anche i file ignorati. Verifica sempre con una simulazione (git clean -n) prima di eseguire il comando.
Modalità interattiva
Il comando git clean -i abilita una modalità interattiva, permettendo di rimuovere selettivamente i file non tracciati. Questa modalità è utile quando vuoi avere più controllo su quali file o directory eliminare.
Supponiamo che tu stia lavorando a un progetto in cui hai già salvato le modifiche nella cartella Olympics. Tuttavia, hai aggiunto nuove fonti dati chiamate 2024_Data e 2025_Data. Se esegui il comando git clean -i, otterrai un prompt che ti permette di scegliere tra le seguenti opzioni per eliminare le modifiche non tracciate.
-
clean: rimuovi i file selezionati -
filter: specifica un pattern per i file da pulire -
select: scegli singoli file per numero -
quit: esci senza eliminare nulla

git clean -i, modalità interattiva. Immagine dell’autore.
Simulazione per sicurezza
Usare l’opzione git clean -n è una utile misura di sicurezza perché esegue una "simulazione", mostrando l’elenco di file e directory non tracciati che verrebbero rimossi senza eliminarli davvero. Questo ti permette di rivedere le modifiche prima di applicarle.
Nell’esempio seguente, il comando git clean -n elenca i file che dovrebbero essere eliminati ma non li cancella.

git clean -n per la simulazione. Immagine dell’autore.
Combinazione con git reset
Per reimpostare completamente una working directory Git, puoi combinare git reset e git clean dove:
-
git reset --hard: ripristina i file tracciati all’ultimo stato commitato, scartando eventuali modifiche locali. -
git clean -fd: rimuove file e directory non tracciati, lasciando solo i file commitati.
Questa combinazione garantisce una working directory completamente pulita, utile quando cambi branch, annulli modifiche sperimentali o ti prepari a ripartire da zero.
Dai un’occhiata al tutorial Git Pull Force: How to Overwrite a Local Branch With Remote per imparare le buone pratiche per sovrascrivere le modifiche locali.
Guida passo passo all’uso di git clean
Segui questi passaggi per pulire in sicurezza il tuo repository Git e rimuovere file e directory non tracciati indesiderati.
Passaggio 1: verifica lo stato attuale
Prima di pulire, esegui git status per controllare lo stato attuale del repository e vedere quali file sono non tracciati.
git status

git status per verificare lo stato attuale del repository. Immagine dell’autore.
Passaggio 2: anteprima di ciò che verrà rimosso
Prima di eseguire qualsiasi comando di rimozione, usa git clean -n per visualizzare in anteprima ciò che verrà rimosso.
git clean -n

git clean -n per vedere in anteprima cosa eliminare. Immagine dell’autore.
Passaggio 3: rimuovi i file non tracciati
Esegui git clean -f per rimuovere i file non tracciati se l’anteprima è corretta.
git clean -f

Rimuovi le modifiche non tracciate con git clean -f. Immagine dell’autore.
Passaggio 4: rimuovi le directory non tracciate
Usa git clean -fd per rimuovere le directory non tracciate.
git clean -fd

Rimuovi le directory non tracciate con git clean -fd. Immagine dell’autore.
Passaggio 5: rimuovi i file ignorati
Per rimuovere sia i file non tracciati sia quelli ignorati, usa il comando git clean -fx.
git clean -fx
Passaggio 6: usa la modalità interattiva per una pulizia selettiva
Per avere più controllo, valuta l’uso di git clean -i per la rimozione interattiva. Questa modalità ti permette di selezionare singolarmente quali file eliminare.
Git clean -i

git clean -i, modalità interattiva per una pulizia selettiva. Immagine dell’autore.
git clean vs. altri comandi Git
Il comando git clean viene spesso confrontato con altri comandi Git che modificano o reimpostano i file. La tabella seguente evidenzia le differenze principali:
| Comando | Funzione |
|---|---|
git clean |
Rimuove in modo permanente file e directory non tracciati. |
git reset |
Ripristina i file tracciati a uno stato precedente, influendo su modifiche in stage e commitate. |
git checkout (o git restore) |
Scarta le modifiche nei file tracciati ma non li rimuove. |
git stash |
Salva temporaneamente sia le modifiche tracciate sia quelle non tracciate per un uso successivo. |
Buone pratiche per Git Clean
Per usare git clean in modo sicuro ed efficace, segui queste buone pratiche:
-
Usa la simulazione (-n) prima di eliminare: usa sempre l’opzione
git clean -nper una simulazione prima di eseguiregit clean. Ti permette di vedere in anteprima quali file verranno rimossi senza eliminarli davvero. -
Fai attenzione ai file ignorati: quando usi
git clean, fai attenzione all’opzione-x, che rimuove i file ignorati. Potrebbe eliminare file di configurazione importanti elencati in.gitignore. Se hai bisogno di rimuovere i file ignorati, usa il comandogit clean -fx. -
Combinalo con Git Reset per una pulizia completa: per azzerare completamente il repository, combina
git resetcongit clean, dovegit reset --hardripristina i file tracciati all’ultimo stato commitato egit clean -fdrimuove file e directory non tracciati. -
Usa la modalità interattiva (-i) per eliminazioni più sicure: invece di rimuovere i file alla cieca, usa la modalità interattiva (
git clean -i) per rivedere e selezionare i file da eliminare.
Rischi potenziali e precauzioni
Usare git clean può essere rischioso se non lo si fa con attenzione, perché elimina i file in modo permanente senza conservarli da nessuna parte. Ecco alcuni rischi chiave e precauzioni da considerare:
-
I file vengono eliminati in modo permanente: a differenza di
git stash, che salva temporaneamente le modifiche,git cleanelimina in modo permanente file e directory non tracciati. Una volta rimossi, questi file non possono essere recuperati tramite Git. Se potresti averne bisogno in seguito, valuta di metterli in stash o farne il backup prima di eseguire il comandogit clean. -
Attenzione all’opzione -x: usare
git clean -fxrimuove i file ignorati, che possono includere file di configurazione importanti elencati in.gitignoreo cache di dipendenze comenode_modules/evenv/. Rimuoverli accidentalmente può compromettere build o ambienti di sviluppo, quindi usa questa opzione solo quando necessario. -
Esegui prima una simulazione: esegui sempre una simulazione con
git clean -nprima digit clean -f. Questo passaggio ti permette di vedere in anteprima quali file verranno eliminati, aiutandoti a evitare la rimozione accidentale di file importanti -
Approcci alternativi: in alcuni scenari, usare
git stashpuò essere una scelta migliore rispetto agit clean. Il comandogit stash -umette in stash i file non tracciati, escludendo i file ignorati per un possibile recupero successivo, egit stash popripristina le modifiche messe in stash se necessario. Questo metodo è utile quando devi cambiare branch o ripulire l’ambiente di lavoro senza perdere definitivamente le modifiche.
Conclusione
Un codebase ben mantenuto dimostra attenzione ai dettagli, efficienza e capacità di gestire responsabilmente le risorse digitali. I datori di lavoro cercano sviluppatori che conoscano buone pratiche come usare git clean -n prima di eliminare file, fare attenzione ai file ignorati con -x e sfruttare alternative più sicure come git stash.
Seguire i corsi DataCamp non è solo un ottimo modo per imparare, ma anche un modo efficace per dimostrare ai datori di lavoro che prendi sul serio lo sviluppo software. A tal fine, ti consiglio di studiare il post Top 20 Git Interview Questions and Answers for All Levels e di seguire il nostro nuovo skill track Git Fundamentals per diventare esperto di tutto ciò che riguarda Git.
Git Clean: domande frequenti
Che cosa fa git clean?
git clean rimuove file e directory non tracciati dalla tua working directory Git.
git clean elimina i file commitati?
No, git clean rimuove solo i file non tracciati e non influisce sui file commitati o in stage.
Come posso vedere in anteprima i file prima di eliminarli?
Usa git clean -n per eseguire una simulazione e vedere quali file verranno rimossi.
Qual è la differenza tra git clean -f e git clean -fd?
git clean -f rimuove i file non tracciati, mentre git clean -fd rimuove anche le directory non tracciate.
In cosa git clean è diverso da git reset?
git clean rimuove i file non tracciati, mentre git reset ripristina i file tracciati a uno stato precedente.
Esiste un modo per eliminare i file in modo selettivo?
Sì, usa git clean -i per la modalità interattiva, che ti permette di scegliere i file da eliminare.


