¿Eliminar archivos que no son del repositorio con git?


97

Estoy escribiendo código de Autotools y en el proceso de desarrollo, se generan toneladas de archivos.

¿Hay alguna forma de decirle a git que elimine todos los archivos de un directorio que no forman parte del repositorio?

Respuestas:


178

Puedes usar git-clean . Este comando eliminará los archivos / directorios sin seguimiento. De forma predeterminada, solo imprimirá lo que hubiera eliminado, sin eliminarlo realmente.

Dada la -fbandera para eliminar los archivos y la -dbandera para eliminar también los directorios vacíos:

git clean -df

También eliminando archivos ignorados:

git clean -dfx

36
Agregue un -xy todo es tan bueno como un repositorio recién clonado.
Dustin

2
Pensé que se refería a eliminar archivos de git, no del sistema de archivos real, ¡Ups!
Andrew Marshall

El comando git cleanpor sí solo eliminará todos los archivos sin seguimiento, excepto cuando la variable de configuración de Git clean.requireForce esté establecida en true. Si se establece en falso, entonces se necesita -ff para limpiar directorios
Adam

6
Las versiones recientes de git producirán errores sin ningún parámetro; requireForce tiene el valor predeterminado verdadero, por lo que para hacer un dryrun necesitas -n
Seb

1
siguiendo a @Dustin: git clean -ixle mostrará lo que limpiará y le dará un menú de opciones. Mi favorito.
wcochran
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.