HOWTO · Git

Come rimuovere i file non tracciati in Git

Visualizza in anteprima i file non tracciati con git clean, quindi rimuovi file o directory in sicurezza. Scopri come -x e -X gestiscono i file ignorati.

In questa pagina

Per rimuovere i file non tracciati in Git, visualizza prima i candidati con git clean -n, quindi esegui git clean -f dopo aver controllato l’elenco. Aggiungi -d se vuoi rimuovere anche le directory non tracciate. git clean elimina i file dalla working tree; Git non può ripristinare i file non tracciati che non sono stati né sottoposti a commit né messi in stage.

Visualizzare i file non tracciati prima della pulizia

Un file non tracciato si trova nella working tree, ma non è stato aggiunto all’indice di Git e quindi non viene incluso nei commit. Esegui git status per visualizzare i percorsi non tracciati; Git potrebbe riassumere come directory i file contenuti in una directory non tracciata. Se vuoi conservare un file e iniziare a tracciarlo, usa git add <file> invece di eliminarlo con la pulizia.

Prima di eliminare qualsiasi elemento, visualizza l’elenco dei file non tracciati con git clean -n. L’opzione -n esegue una simulazione: Git mostra i file che rimuoverebbe senza eliminarli. Per includere nell’anteprima anche le directory non tracciate, usa git clean -n -d. Controlla ogni percorso elencato; per impostazione predefinita i file ignorati non sono inclusi.

Rimuovere file e directory non tracciati

Dopo aver controllato l’anteprima, usa -f per consentire l’eliminazione. Questo esempio autonomo crea un repository Git temporaneo, visualizza l’anteprima di un file non tracciato e lo rimuove. Il repository corrente non viene modificato. Nell’output mostrato notes.txt appare prima tra i candidati alla rimozione e poi la sua eliminazione viene confermata.

scratch=$(mktemp -d)
trap 'rm -rf "$scratch"' EXIT
git -C "$scratch" init -q
printf 'temporary file\n' > "$scratch/notes.txt"
LC_ALL=C git -C "$scratch" clean -n
LC_ALL=C git -C "$scratch" clean -f
Would remove notes.txt
Removing notes.txt

Nella tua working tree, usa git clean -f per i file non tracciati e git clean -f -d per i file e le directory non tracciati. Esegui prima l’anteprima corrispondente, git clean -n oppure git clean -n -d, e controlla i candidati. Git non può annullare l’eliminazione dei file che non sono mai stati sottoposti a commit o messi in stage.

Se vuoi eliminare solo alcuni file, rimuovi i relativi percorsi con il file manager o con un comando come rm <file>. Per scegliere interattivamente i candidati, usa git clean -i: Git mostra un menu invece di rimuovere tutti i candidati in una volta. Anche un client grafico può mostrare i file non tracciati, ma le etichette e i controlli di eliminazione variano da un’applicazione all’altra.

Gestire i file ignorati e altre opzioni di git clean

Di norma Git protegge da git clean i file corrispondenti a .gitignore. Tra i file ignorati possono esserci output di compilazione, configurazioni locali o dati di cui hai ancora bisogno: controlla quindi quali elementi verrebbero inclusi prima di procedere.

  • -x include i file ignorati insieme agli altri file non tracciati. Visualizza l’anteprima di questa pulizia più ampia con git clean -n -d -x, quindi usa git clean -f -d -x solo se intendi rimuovere quei candidati.
  • -X seleziona solo i file ignorati. Visualizza l’anteprima con git clean -n -d -X, quindi usa git clean -f -d -X per rimuovere solo i file e le directory ignorati.
  • -d include le directory non tracciate; -f consente l’eliminazione; -n mostra l’anteprima; -i apre la selezione interattiva.

Scegli -x per una pulizia ampia che includa sia i file ignorati sia gli altri elementi non tracciati. Scegli -X se vuoi intervenire solo sugli elementi ignorati. Controlla l’anteprima prima di eseguire entrambi i comandi, soprattutto se tra i percorsi ignorati ci sono file locali che vuoi conservare.