Git: Come eliminare tutti i file non tracciati?


40

Sto usando Git per il controllo della versione. Ora voglio eliminare sul mio computer locale tutti i file nel repository che non vengono tracciati.

posso usare

git status

per elencare questi file, ma come posso eliminarli tutti?


1
Non puoi semplicemente controllare tutti i file in un posto diverso dal tuo computer e quindi eliminare la vecchia versione?
Nifle,

1
Certo che posso, ma non c'è un modo più semplice?
RoflcoptrException

Risposte:


55

Se lo hai ignorato, usa git clean -xf. Puoi farlo git clean -dfma rimuoveranno anche le directory non tracciate. Utilizzare -nper una corsa a secco.

Vedi pulizia non tracciata


3
-x ignora gli ignori ..
UpAndAdam

8
-xfeliminerà e i file ignorati e questo probabilmente NON è quello che vuoi. Utilizzare -nfe procedere con cura. Vedi: stackoverflow.com/questions/61212/…
Mr_and_Mrs_D

2
Ricorda, questo potrebbe rimuovere le cartelle ambiente / IDE (ad esempio .vagrant o .idea (phpstorm))
timhc22

1
ATTENTO! i file gitignored verranno eliminati per sempre. -100
sepehr

5
git clean -f

8
Potrebbe avere senso aggiungere il significato di quel comando per rendere autonoma questa risposta.
NN,

5

Approccio interattivo dell'utente:

git clean -i -fd

Remove .classpath [y/N]? N
Remove .gitignore [y/N]? N
Remove .project [y/N]? N
Remove .settings/ [y/N]? N
Remove src/com/amazon/arsdumpgenerator/inspector/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove src/com/amazon/arsdumpgenerator/s3/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/manifest/ [y/N]? y
Remove tst/com/amazon/arsdumpgenerator/s3/ [y/N]? y

-i per interattivo
-f per il file
-d per la directory

Nota: Aggiungi -n o --dry-run per controllare semplicemente cosa farà.


3

C'è una sottigliezza degna di nota riguardo git clean -fai file e alle directory non tracciati. Se si dispone di una directory non tracciata che contiene file che sono, a maggior ragione, non tracciati, git clean -fNON verranno eliminati quei file non tracciati.

In altre parole, NON è sempre il caso che git clean -feliminerà tutti i file non tracciati. Una spiegazione migliore di git clean -fè che elimina tutti i file non tracciati che non si trovano in directory non tracciate.

git clean -f -d deve essere utilizzato per eliminare i file non tracciati che si trovano nelle directory non tracciate e sembra che non ci sia modo di eliminare tutti i file non tracciati senza eliminare anche le directory non tracciate che contengono solo file non tracciati.

Utilizzare git clean -f -d -nper VERAMENTE vedere cosa si desidera fare per ripristinare la directory di lavoro in quella che sarebbe senza file non tracciati. Quindi usa git clean -f -dper farlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.