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?

Scott
la source

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
Lily Ballard
la source
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