Cómo eliminar varios archivos eliminados en el repositorio de Git
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
git add -u
actualiza todos tus cambios
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; xargs
Recoge los argumentos y los proporciona a un git rm
comando. Esto funciona para cualquier número de archivos independientemente de la similitud (o diferencia) en los nombres.
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.