Pregunta Eliminar múltiples archivos de un repositorio de Git que ya han sido borrados del disco


Tengo un repo de Git que he eliminado cuatro archivos del uso rm (no  git rm), y mi estado de Git se ve así:

#    deleted:    file1.txt
#    deleted:    file2.txt
#    deleted:    file3.txt
#    deleted:    file4.txt

¿Cómo elimino estos archivos de Git sin tener que pasar manualmente y agregar cada archivo como este?

git rm file1 file2 file3 file4

Idealmente, estoy buscando algo que funcione de la misma manera que git add . si, si eso es posible


1227
2018-01-29 17:18


origen


Respuestas:


Para Git 1.x

$ git add -u

Esto le indica a git que realice automáticamente la etapa de los archivos rastreados, incluida la eliminación de los archivos rastreados anteriormente.

Para Git 2.0

Para escenificar tu árbol de trabajo completo:

$ git add -u :/

Para poner en escena solo la ruta actual:

$ git add -u .

2205
2017-09-10 00:13



git ls-files --deleted -z | xargs -0 git rm 

podría ser lo que estás buscando ... me funciona ...


1335
2018-02-28 20:21



Puedes usar

git add -u

Para agregar los archivos eliminados al área de ensayo, compóralos

git commit -m "Deleted files manually"

725
2018-01-29 17:25



Si simplemente ejecuta:

git add -u

git actualizará su índice para saber que los archivos que ha eliminado deberían formar parte de la siguiente confirmación. Luego puede ejecutar "git commit" para verificar ese cambio.

O, si ejecuta:

git commit -a

Tomará automáticamente estos cambios (y cualquier otro) y los comprometerá.

Actualizar: Si solo desea agregar archivos eliminados, intente:

git ls-files --deleted -z | xargs -0 git rm
git commit

354
2017-09-10 00:15



Probablemente estés buscando -A:

git add -A

esto es similar a git add -u, pero también agrega nuevos archivos. Esto es más o menos el equivalente de hg addremove comando (aunque la detección de movimiento es automática).


163
2018-01-29 18:10



Al escenario solo el eliminado archivos:

for x in $(git status | grep deleted | awk '{print $2}'); do git rm $x; done

O (la forma xargs):

git status | awk '/deleted/ {print $2}' | xargs git rm

Usted puede alias su conjunto de comandos preferido para un uso posterior conveniente.


92
2017-11-26 10:34



git rm test.txt

Antes o después de eliminar el archivo real.


59
2017-09-10 00:13



Al usar git-add con las opciones '--all' o '--update', puede obtener más de lo que deseaba. Los archivos nuevos y / o modificados también se agregarán al índice. Tengo una configuración bash alias para cuando quiero eliminar archivos eliminados de git sin tocar otros archivos:

alias grma='git ls-files --deleted -z | xargs -0 git rm'

Todos los archivos que se han eliminado del sistema de archivos se agregan al índice como eliminados.


47
2018-01-31 04:50



No es que realmente importe, pero no estoy de acuerdo con la respuesta elegida:

git add -u 

... eliminará los archivos del índice si se eliminaron los archivos correspondientes en el árbol de trabajo, pero también incluirá los nuevos contenidos modificados de los archivos rastreados.

git rm $(git ls-files --deleted)

... por otro lado, solo se ejecutarán los archivos eliminados que fueron rastreados.

Entonces este último en mi opinión es la mejor opción.


38
2018-04-09 11:24



Si esos son los únicos cambios, simplemente puede hacer

git commit -a

para comprometer todos los cambios Eso incluirá archivos eliminados.


28
2018-01-29 17:29