2009-03-11 16 views
6

Quité 777 imágenes que puede encontrar en los antepasados ​​del Git newFeature porNo se puede eliminar rápidamente muchos archivos en Git

rm !(example) 

quisiera comprometerse. Git me piden que quitar manualmente cada uno de los archivos eliminados por

git rm file 

Se necesitaría mucho tiempo para escribir el comando anterior para todos los 777 archivos cuyos nombres no sean similares.

¿Cómo puedo eliminar estos archivos 777 en mi rama de Git newFeature? Quiero guardarlos como copia de seguridad para su uso posterior, pero ahora, quiero estar sin ellos.

Respuesta

19
git add -u 

Se "borrará" todos los archivos que haya eliminado.

De Git add:

u
--update

actualización sólo los archivos que ya se sabe acerca de git, puesta en escena contenido modificado para cometer y el marcaje archivos borrados para su eliminación.
Esto es similar a lo que hace "git commit -a" en preparación para realizar una confirmación, excepto que la actualización está limitada a las rutas especificadas en la línea de comandos.
Si no se especifican rutas, se actualizan todos los archivos rastreados en el directorio actual y sus subdirectorios.


El "camino de fontanería" era de hecho una especie de script one-line

for i in ` git st | grep deleted | awk ‘{print $3}’ ` ; do git rm $i; done 

o para la caja de Windows con GnuWin32

git st | grep deleted | gawk "{print \"git rm \"$3}" | cmd 

Pero git add -u es la principal forma de porcelana para hacerlo.

+0

Esto es astuto. Sé que es una mala práctica eliminar en masa o agregar archivos git, pero cuando mueves directorios alrededor de este comando es vital. Vital. – davidahines

+0

pero sigue siendo muy útil si sabe lo que está haciendo, por ejemplo git -u app/assets/images, para una actualización masiva borra imágenes en un proyecto de rieles – Alexis

1

Me gusta ... estado de git | grep eliminado | corte -f2 -d: | xargs git rm

Cuestiones relacionadas