Cómo eliminar varios archivos eliminados en el repositorio de Git

Resuelto shin asked hace 13 años • 16 respuestas

He eliminado algunos archivos y el estado de git se muestra a continuación.

Me he comprometido y presionado.

GitHub todavía muestra los archivos eliminados en el repositorio. ¿Cómo puedo eliminar archivos en el repositorio de GitHub?

# On branch master
# Changes not staged for commit:
#   (use "git add/rm <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   deleted:    modules/welcome/language/english/kaimonokago_lang.php
#   deleted:    modules/welcome/language/french/kaimonokago_lang.php
#   deleted:    modules/welcome/language/german/kaimonokago_lang.php
#   deleted:    modules/welcome/language/norwegian/kaimonokago_lang.php

Si lo uso git rm, me da lo siguiente.

usage: git rm [options] [--] <file>...

-n, --dry-run         dry run
-q, --quiet           do not list removed files
--cached              only remove from the index
-f, --force           override the up-to-date check
-r                    allow recursive removal
--ignore-unmatch      exit with a zero status even if nothing matched
shin avatar May 15 '11 03:05 shin
Aceptado
git add -u 

actualiza todos tus cambios

mshameers avatar Sep 01 '2012 16:09 mshameers

Tenga mucho cuidado con git rm .; podría eliminar más de lo que desea. Por supuesto, puedes recuperarlo, pero es más sencillo no tener que hacerlo.

Lo más simple sería:

git rm modules/welcome/language/english/kaimonokago_lang.php \
       modules/welcome/language/french/kaimonokago_lang.php \
       modules/welcome/language/german/kaimonokago_lang.php \
       modules/welcome/language/norwegian/kaimonokago_lang.php

No puedes usar comodines de shell porque los archivos no existen, pero puedes usar (al menos en Bash):

git rm modules/welcome/language/{english,french,german,norwegian}/kaimonokago_lang.php

O considere:

git status | sed -n '/^# *deleted:/s///p' | xargs git rm

Esto toma la salida de git status, no imprime nada de forma predeterminada ( sed -n), pero en las líneas que comienzan # deleted:, elimina the #y the deleted:e imprime lo que queda; xargsRecoge los argumentos y los proporciona a un git rmcomando. Esto funciona para cualquier número de archivos independientemente de la similitud (o diferencia) en los nombres.

Jonathan Leffler avatar May 14 '2011 20:05 Jonathan Leffler

Otra versión de la respuesta de ByScripts es

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

Esto SÓLO eliminará los archivos eliminados del git.

También podría usarse para agregar SÓLO archivos modificados.

git add $(git ls-files --modified)

Estos comandos también funcionan en gitbash para Windows.

Vijay C avatar Jul 04 '2013 18:07 Vijay C