Supprimer les fichiers non référentiels avec git?


97

J'écris du code Autotools et en cours de développement, des tonnes de fichiers sont générés.

Est-il possible de dire à git de supprimer tous les fichiers d'un répertoire qui ne font pas partie du référentiel?

Réponses:


178

Vous pouvez utiliser git-clean . Cette commande supprimera les fichiers / répertoires non suivis. Par défaut, il n'imprimera que ce qu'il aurait supprimé, sans les supprimer.

Étant donné le -fdrapeau pour supprimer les fichiers, et le -ddrapeau pour supprimer également les répertoires vides:

git clean -df

Suppression également des fichiers ignorés:

git clean -dfx

36
Ajoutez un -xet c'est aussi bon qu'un repo fraîchement cloné.
Dustin

2
Je pensais qu'il voulait dire supprimer des fichiers de git, pas le système de fichiers réel, oups!
Andrew Marshall

La commande git cleanseule supprimera en fait tous les fichiers non suivis - sauf lorsque la variable de configuration Git clean.requireForce est définie sur true. Si sa valeur est false, alors -ff est nécessaire pour nettoyer les répertoires
Adam

6
Les versions récentes de git entraîneront des erreurs sans aucun paramètre; requireForce a la valeur par défaut true, donc pour faire un dryrun, vous avez besoin de -n
Seb

1
suivi de @Dustin: git clean -ixvous montrera ce qu'il va nettoyer et vous donnera un menu d'options. Mon préféré.
wcochran
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.