Introduzione

I file nella directory di lavoro di Git possono essere tracciati o non tracciati.

I file tracciati sono quelli che sono stati aggiunti e sottoposti a commit e che git conosce. I file tracciati possono essere non modificati, modificati o staged. Tutti gli altri file nella directory di lavoro non sono tracciati e git non è a conoscenza di tali file.

A volte la tua directory di lavoro di git può essere ingombra di file non necessari che vengono generati automaticamente, rimanenti da fusioni o creati per errore. In tali situazioni, è possibile aggiungere quei file in .gitignore o rimuoverli. Se si desidera mantenere pulito il proprio repository, l'opzione migliore è rimuovere i file non necessari.

Questo articolo spiega come rimuovere i file untracked  in Git.

Rimozione di file non tracciati

Il comando che consente di rimuovere file non tracciati è git clean.

È sempre una buona idea eseguire il backup del repository perché, una volta eliminati, i file e le modifiche apportate non possono essere recuperati.

Prima di eseguire il comando effettivo e rimuovere i file e le directory non tracciati utilizzare l'opzione -n che eseguirà un "ciclo di prova" e mostrerà quali file e directory verranno eliminati:

git clean -d -n

L'output sarà simile al seguente:

Would remove content/news/
Would remove content/articoli/esempio.txt

Se alcuni dei file sopra elencati sono importanti, dovresti iniziare a tracciare questi file con git add o aggiungerli al tuo .gitignore.

Una volta che sei sicuro di voler andare avanti ed eliminare i file e le directory non tracciati, digitare:

git clean -d -f

Il comando stamperà tutti i file e le directory eliminati correttamente:

Removing content/news/
Removing content/articoli/esempio.txt

L' opzione -d dice a git di rimuovere anche le directory non tracciate. Se non si desidera eliminare directory vuote non tracciate, omettere l'opzione -d.

L' opzione -f rappresenta force (eliminazione forzata). Se non utilizzato e la variabile di configurazione di Git clean.requireForce è impostata su true, Git non eliminerà i file.

Se si desidera eliminare in modo interattivo i file non tracciati utilizzare l'opzione -i:

git clean -d -i

L'output mostrerà i file e le directory da rimuovere e ti chiederà cosa fare con quei file:

Would remove the following items:
  content/news/   content/articoli/esempio.txt
*** Commands ***
    1: clean                2: filter by pattern    3: select by numbers
    4: ask each             5: quit                 6: help

Seleziona una delle opzioni e premi INVIO.

Se si desidera limitare l'operazione a determinate directory, passare i percorsi alle directory da controllare per i file non tracciati come argomenti al comando. Ad esempio, per verificare la presenza di file nella directory src dovresti eseguire:

git clean -d -n src

Rimozione di file ignorati

Il comando git clean consente anche di rimuovere file e directory ignorati.

Per rimuovere tutti i file ignorati e non tracciati utilizzare l' opzione -x:

git clean -d -n -x

Se si desidera rimuovere solo i file e le directory ignorati, utilizzare l'opzione -X:

git clean -d -n -X

Il comando sopra cancellerà tutti i file e le directory elencati nel tuo .gitignore e manterrà i file non tracciati.

Conclusione

In questo tutorial, abbiamo visto come eliminare file e directory non tracciati in Git.