Quando si lavora su un repository Git, è comune accumulare file e directory non tracciati che non fanno parte del sistema di controllo versione del repository. Questi possono includere file temporanei, artefatti di build o altri file creati localmente che non sono stati committati. Nel tempo, questi file possono ingombrare la directory di lavoro, rendendo più difficile mantenere uno spazio di lavoro pulito e organizzato.
Per affrontare questo problema, Git fornisce il comando git clean
, che rimuove file e directory non tracciati. In questa guida, ti mostrerò come utilizzare in modo sicuro git clean
, le sue diverse opzioni e le migliori pratiche per evitare la cancellazione involontaria di file, mantenendo ordinato il tuo repository Git. Per ulteriori approfondimenti, ti consiglio di seguire i nostri corsi Fondamenti di Git e Introduzione ai concetti di GitHub per apprendere il controllo versione e la differenza tra Git e GitHub.
Comprendere git clean
Il comando git clean
è uno strumento utile in Git che rimuove i file non tracciati dalla directory di lavoro. Il comando git clean
è utile quando è necessario ripristinare la directory di lavoro a uno stato originale, ad esempio prima di passare a un’altra branch o dopo l’esecuzione di processi di build che generano file temporanei. Tuttavia, il comando git clean
va usato con cautela poiché elimina definitivamente file e directory non tracciati senza spostarli nel cestino o nel riciclo bin.
A differenza di git reset
o git checkout
, che modificano file tracciati, git clean
si occupa strettamente di file e directory che non sono sotto controllo di versione. Ciò include:
-
File temporanei creati dalle build
-
File di log o dati memorizzati nella cache
-
File elencati in .gitignore (se specificato esplicitamente con
-x
)
Il comando git clean
è utile per mantenere un’area di lavoro ordinata, integrando altri comandi Git come git reset
e git checkout
, che gestiscono le modifiche nei file tracciati.
Trovo la Complete Git Cheat Sheet una pratica guida di riferimento per i comandi Git comuni.
Usi Comuni di git clean
Il comando git clean
è uno strumento utile per mantenere una directory di lavoro pulita. Di seguito sono riportati alcuni casi d’uso comuni in cui git clean
può rimuovere in modo sicuro file e directory non necessari.
Rimozione di file non tracciati
Quando si lavora in un repository Git, i file non tracciati possono accumularsi nel tempo. Le seguenti opzioni aiutano a rimuoverli:
-
git clean -f
: Forza la rimozione di file non tracciati. -
git clean -fd
: Rimuove file non tracciati e directory non tracciate. -
git clean -fx
: Rimuove file non tracciati e ignorati come quelli elencati in.gitignore
.
Tuttavia, è necessario fare attenzione quando si utilizza l’opzione -fx
poiché rimuove anche i file ignorati. Verifica sempre utilizzando un’esecuzione di prova (git clean -n
) prima di eseguire il comando.
Modalità interattiva
Il comando git clean -i
abilita una modalità interattiva, consentendo agli utenti di rimuovere selettivamente i file non tracciati. Questa modalità è utile quando si desidera avere un maggiore controllo su quali file o directory vengano eliminati.
Supponiamo di lavorare su un progetto in cui hai già salvato le modifiche nella cartella Olympics
. Tuttavia, hai aggiunto nuove fonti di dati denominate 2024_Data,
e 2025_Data
. Se esegui il comando git clean -i
, otterrai il prompt che ti permette di scegliere tra le seguenti opzioni per eliminare le modifiche non tracciate.
-
clean
: Rimuovi i file selezionati -
filter
: Specifica un modello per i file da pulire -
select
: Scegli i singoli file per numero -
quit
: Uscire senza eliminare nulla
git clean -i modalità interattiva. Immagine dell’Autore.
Esecuzione a secco per sicurezza
Utilizzando l’opzione git clean -n
è una misura di sicurezza utile poiché esegue una “esecuzione a secco”, visualizzando un elenco di file e directory non monitorati che verrebbero rimossi senza eliminarli effettivamente. Ciò consente di rivedere le modifiche prima di eseguirle.
Nell’esempio seguente, il comando git clean -n
elenca i file che dovrebbero essere eliminati ma non li elimina.
git clean -n per esecuzione a secco. Immagine dell’Autore.
Combinare con il reset di git
Per ripristinare completamente una directory di lavoro Git, è possibile combinare il reset di git e git clean
dove:
-
git reset --hard
: Ripristina i file monitorati allo stato dell’ultimo commit, eliminando le modifiche locali. -
git clean -fd
: Rimuove file e directory non monitorati, lasciando solo i file commessi.
Questa combinazione assicura un ambiente di lavoro completamente pulito, rendendola utile quando si passa da un ramo all’altro, si annullano modifiche sperimentali o ci si prepara per un nuovo inizio.
Consulta il tutorial su Git Pull Force: Come Sovrascrivere un Ramo Locale con il Remoto per imparare le migliori pratiche per sovrascrivere le modifiche locali.
Guida Passo-Passo all’Uso di git clean
Segui questi passaggi per pulire in modo sicuro il tuo repository Git e rimuovere file e directory non desiderati non tracciati.
Passo 1: Controlla lo stato attuale
Prima di pulire, esegui git status
per controllare lo stato attuale del tuo repository e vedere quali file non sono tracciati.
git status
git status per controllare lo stato attuale del repository. Immagine dell’Autore.
Passo 2: Anteprima della rimozione
Prima di eseguire qualsiasi comando di rimozione, utilizza git clean -n
per visualizzare un’anteprima di ciò che verrà rimosso.
git clean -n
git clean -n per visualizzare cosa verrà eliminato. Immagine dell’Autore.
Passo 3: Rimuovere file non tracciati
Esegui git clean -f
per rimuovere i file non tracciati se l’anteprima sembra corretta.
git clean -f
Rimuovi le modifiche non tracciate utilizzando git clean -f. Immagine dell’Autore.
Passo 4: Rimuovere directory non tracciate
Utilizza git clean -fd
per rimuovere le directory non tracciate.
git clean -fd
Rimuovere le directory non tracciate utilizzando git clean -fd. Immagine dell’Autore.
Passaggio 5: Rimuovere i file ignorati
Per rimuovere sia i file non tracciati che quelli ignorati, utilizzare il comando git clean -fx
.
git clean -fx
Passaggio 6: Utilizzare la modalità interattiva per la pulizia selettiva
Per avere maggiore controllo, prendere in considerazione l’uso di git clean -i
per la rimozione interattiva. Questa modalità consente di selezionare singolarmente i file da eliminare.
Git clean -i
git clean -i modalità interattiva per la pulizia selettiva. Immagine dell’Autore.
git clean vs. Altri Comandi Git
Il comando git clean
è spesso confrontato con altri comandi Git che modificano o ripristinano i file. La tabella qui sotto evidenzia le principali differenze:
Command | Function |
---|---|
git clean |
Rimuove definitivamente i file e le directory non tracciati. |
git reset |
Ripristina i file tracciati a uno stato precedente, influenzando le modifiche in fase di preparazione e quelle già commesse. |
git checkout (o git restore ) |
Scarta le modifiche nei file tracciati ma non li rimuove. |
git stash |
Salva temporaneamente sia le modifiche tracciate che quelle non tracciate per un uso successivo. |
Pratiche Ottimali di Git Clean
Per utilizzare git clean
in modo sicuro ed efficace, seguire queste linee guida:
-
Utilizzare le simulazioni (-n) prima dell’eliminazione: Utilizzare sempre l’opzione
git clean -n
per eseguire una simulazione prima di eseguiregit clean
. Questo consente di visualizzare i file che verranno rimossi senza eliminarli effettivamente. -
Stai attento ai file ignorati: Quando si utilizza
git clean
, fai attenzione all’opzione-x
, che rimuove i file ignorati. Questo potrebbe eliminare file di configurazione importanti elencati in.gitignore
. Se devi rimuovere i file ignorati, utilizza il comandogit clean -fx
. -
Combinare con Git Reset per una Pulizia Completa: Per ripulire completamente il tuo repository, combina
git reset
congit clean
, dovegit reset --hard
ripristina i file tracciati al loro stato dell’ultimo commit egit clean -fd
rimuove i file e le directory non tracciati. -
Usa la Modalità Interattiva (-i) per Eliminazioni più Sicure: Invece di rimuovere i file alla cieca, utilizza la modalità interattiva (
git clean -i
) per rivedere e selezionare i file da eliminare.
Potenzi Rischi e Precauzioni
Utilizzare git clean
può essere rischioso se non fatto attentamente, poiché elimina permanentemente i file senza conservarli da nessuna parte. Ecco alcuni rischi chiave e precauzioni da considerare:
-
I file vengono eliminati definitivamente: A differenza di
git stash
, che salva temporaneamente le modifiche,git clean
elimina definitivamente i file e le cartelle non tracciati. Una volta rimossi, questi file non possono essere recuperati tramite Git. Se potresti aver bisogno dei file in seguito, considera di fare uno stash o di eseguire un backup prima di eseguire il comandogit clean
. -
Attenzione con l’opzione -x: Utilizzare
git clean-fx
rimuove i file ignorati, che potrebbero includere importanti file di configurazione elencati in.gitignore
o cache di dipendenze comenode_modules/
evenv/
. Rimuovere accidentalmente questi file può causare problemi alle build o agli ambienti di sviluppo, quindi utilizza questa opzione solo quando necessario. -
Esegui prima una simulazione: Esegui sempre una simulazione utilizzando
git clean -n
prima di eseguiregit clean -f
. Questo passaggio ti permette di visualizzare quali file verranno eliminati, aiutandoti ad evitare la rimozione accidentale di file importanti -
Approcci Alternativi: In alcuni scenari, utilizzare
git stash
potrebbe essere una scelta migliore rispetto agit clean
. Il comandogit stash -u
memorizza i file non tracciati, escludendo i file ignorati per un potenziale recupero in seguito, e il comandogit stash pop
ripristina le modifiche memorizzate se necessario. Questo metodo è utile quando devi passare a un’altra branch o pulire il tuo spazio senza perdere definitivamente le modifiche.
Conclusioni
Un codebase ben mantenuto mostra attenzione ai dettagli, efficienza e la capacità di gestire responsabilmente gli asset digitali. I datori di lavoro cercano sviluppatori che comprendano le migliori pratiche come l’utilizzo di git clean -n
prima di eliminare i file, facendo attenzione ai file ignorati utilizzando -x
, e facendo uso di alternative più sicure come git stash
.
Seguire i corsi di DataCamp non è solo un ottimo modo per imparare, ma è anche un ottimo modo per segnalare ai datori di lavoro che prendi sul serio lo sviluppo software. A tal fine, consiglio di studiare il post del blog Top 20 Domande e Risposte di Intervista su Git per tutti i Livelli e di seguire il nostro nuovo percorso di abilità Fondamenti di Git per diventare un esperto di tutto ciò che riguarda Git.