Eliminando archivos usando Git / GitHub

115

En primer lugar, soy nuevo en Git.

Eliminé un montón de archivos localmente en mi Mac usando Finder. Quiero que los archivos que eliminé ya no se muestren en la rama actual, pero lo hacen.

¿Algún usuario de Git conoce un comando para actualizar el índice?

Zack
fuente
Ver también stackoverflow.com/questions/492558/…
Petr Gladkikh

Respuestas:

226

Creo que esta sería una forma más sencilla de hacer lo que quieras:

git add . -A 

Entonces solo harías:

git commit -m "removed some files"

Como se señaló anteriormente.

Samuel Mikel Bowles
fuente
Gracias. Y acababa de escribir un alias bashpara hacer lo anterior. Asombroso.
Zack
12
¿Qué hace la bandera -A?
Kim Prince
1
@KimPrince - De acuerdo con kernel.org , "-A --todos Me gusta -u, pero empareja <filepattern> con los archivos en el árbol de trabajo además del índice. Eso significa que encontrará nuevos archivos y el contenido modificado por etapas y eliminar archivos que ya no están en el árbol de trabajo ".
j08691
3
@KimPrince git help addle dirá qué -Asignifica y también enumerará todos los demás conmutadores.
Marcin Orlowski
1
Esto hace mucho más que eliminar archivos eliminados. Agrega todos los archivos que se modifican en el directorio, por lo que esta no es realmente una respuesta satisfactoria.
Alex
19

Puede ver los archivos eliminados, que todavía están 'rastreados' con:

git ls-files --deleted

Para eliminar archivos de una rama, puede hacer algo como esto:

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

De man git-rm:

Elimine archivos del índice o del árbol de trabajo y el índice. git-rm no eliminará un archivo solo de su directorio de trabajo. (No hay opción para eliminar un archivo 13 solo del árbol de trabajo y, sin embargo, mantenerlo en el índice; use / bin / rm si desea hacer eso).

Finalmente, para realizar la "eliminación", haga algo como:

git commit -m "removed some files"
miku
fuente
Entonces necesitas confirmar el cambio -git commit -m "removed some files"
James Polley
17

No sé si esto se ha agregado a git desde las respuestas anteriores, pero acabo de usar

git add -u
git commit -m "Removed some files"

para lograr lo mismo.

Gareth
fuente
Esto funciona para el caso de uso enumerado, pero esto no solo agrega la eliminación de los archivos. Agrega todos los archivos que se han cambiado de alguna manera, por lo que generalmente no es una buena manera de eliminar todos los archivos eliminados, a menos que sean los únicos cambios que haya realizado.
Alex
2
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch deletefile.name' --prune-empty --tag-name-filter cat -- --all
git commit -m "Removed deletefile.name"
git push origin master --force

Reemplace deletefile.name con el archivo a eliminar. Para obtener una explicación detallada en profundidad, consulte el bonito artículo https://help.github.com/articles/remove-sensitive-data

Chawathe Vipul S
fuente