Git: Comment supprimer tous les fichiers non suivis?


40

J'utilise Git pour le contrôle de version. Maintenant, je veux supprimer sur mon ordinateur local tous les fichiers du référentiel qui ne sont pas suivis.

je peux utiliser

git status

pour répertorier ces fichiers, mais comment puis-je les supprimer tous?


1
Ne pouvez-vous pas simplement extraire tous les fichiers à un endroit différent de votre machine, puis supprimer l'ancienne version?
Nifle

1
Bien sûr que je peux, mais n'y a-t-il pas un moyen plus simple?
RoflcoptrException le

Réponses:


55

Si vous avez ignorer, utilisez git clean -xf. Vous pouvez le faire, git clean -dfmais cela supprimera également les répertoires non suivis. Utilisez -npour un essai à sec.

Voir le nettoyage sans suivi


3
-x ignore les ignorés ..
UpAndAdam

8
-xfva supprimer et les fichiers ignorés et ce n'est probablement pas ce que vous voulez. Utilisez -nfet procédez avec soin. Voir: stackoverflow.com/questions/61212/…
Mr_and_Mrs_D

2
N'oubliez pas que cela pourrait supprimer vos dossiers environnement / IDE (par exemple, .vagrant ou .idea (phpstorm))
timhc22

1
FAIS ATTENTION! Les fichiers gitignored seront purgés pour toujours. -100
mercredi

5
git clean -f

8
Il peut être judicieux d’ajouter le sens de cette commande pour rendre cette réponse autonome.
NN

5

Approche interactive de l'utilisateur:

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 pour interactive
-f pour le fichier
-d pour le répertoire

Remarque: Ajoutez -n ou --dry-run pour vérifier simplement ce qu'il va faire.


3

Il convient de mentionner une subtilité à propos des git clean -ffichiers et des répertoires non suivis. Si vous avez un répertoire non suivi qui contient des fichiers a fortiori non suivis, vous git clean -fne supprimerez PAS ces fichiers non suivis.

En d'autres termes, ce n'est PAS toujours le cas qui git clean -fsupprimera tous les fichiers non suivis. Une meilleure explication git clean -fest qu'il supprime tous les fichiers non suivis qui ne se trouvent pas dans des répertoires non suivis.

git clean -f -d doit être utilisé pour supprimer les fichiers non suivis qui se trouvent dans des répertoires non suivis et il semble n'y avoir aucun moyen de supprimer tous les fichiers non suivis sans supprimer également les répertoires non suivis ne contenant que des fichiers non suivis.

Utilisez git clean -f -d -npour voir VRAIMENT ce que vous voulez faire pour restaurer votre répertoire de travail tel qu’il serait sans les fichiers non suivis. Alors utilisez git clean -f -dpour faire ça.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.