Por Anónimo (no verificado) , 29 Abril 2026

Sinopsis

git rm [-f] [-r] [--cached] [--] <file>...

Descripción

El comando git rm elimina archivos del árbol de trabajo y del index en un solo paso, stageando la eliminación para el próximo commit. Usar git rm es más conveniente que eliminar el archivo con rm y luego ejecutar git add, aunque ambos enfoques producen el mismo estado final.

El flag --cached es particularmente útil: elimina el archivo del index sin borrarlo del árbol de trabajo. Esta es la herramienta correcta cuando accidentalmente commiteaste un archivo (como un archivo de configuración con secretos, o un artefacto de build) y quieres dejar de rastrearlo pero mantenerlo en disco.

En el uso diario, git rm se integra con alias de shell, plugins de editor e integración continua. Cuando algo sale mal, ejecuta el comando con GIT_TRACE=1 para revelar las llamadas plumbing subyacentes.

Entender cómo git rm interactúa con el resto del modelo de datos de Git ayuda a predecir resultados y a recuperarse de errores.

Opciones comunes

OpciónDescripción
-f, --forceAnula las verificaciones de seguridad si el archivo tiene cambios no commiteados.
-rElimina directorios recursivamente.
--cachedElimina solo del index; deja el archivo del árbol de trabajo en paz.
-n, --dry-runMuestra lo que se eliminaría sin hacerlo.
--ignore-unmatchSale con cero incluso si no coinciden archivos.
-q, --quietSuprime la salida.

Ejemplos

git rm old-file.txt
# Elimina el archivo y stagea la eliminación

git rm -r build/
# Elimina recursivamente un directorio del repo

git rm --cached secrets.env
# Deja de rastrear un archivo pero lo mantiene localmente
# ¡Luego añádelo a .gitignore!

git rm -n '*.log'
# Previsualiza qué archivos de log serían eliminados

Errores comunes

El mayor obstáculo es olvidar que git rm --cached solo detiene el rastreo futuro: los commits pasados aún contienen el archivo. Si necesitas purgar un secreto del historial, usa git filter-repo o BFG. Otro error es ejecutar git rm sobre un archivo con modificaciones no staged sin darte cuenta de que esos cambios se pierden. Usa -n primero si tienes dudas.

Comandos relacionados

git add, git mv, git restore, git filter-repo