git mv
Mueve o renombra un archivo
El comando 'git mv' renombra o mueve un archivo con seguimiento y prepara el cambio en un solo paso. Es lo mismo que renombrar el archivo tú mismo y ejecutar git add sobre el nombre antiguo y el nuevo. Git no guarda los renombrados: los detecta comparando contenido, así que git log --follow puede mostrar el historial del archivo a través del renombrado.
Sinopsis
git mv [-v] [-f] [-n] [-k] <source> <destination>Ejemplos
Renombrar un archivo
git mv app.js cart.jsRenombra el archivo y prepara el renombrado.
Mover a una carpeta
git mv cart.js src/cart.jsMueve el archivo a una carpeta existente.
Historial tras un renombrado
git log --follow cart.jsSigue el historial hacia atrás a través del renombrado.
Ejemplos de flujos de trabajo
git mv app.js cart.jsRenombrar y preparar
git statusMuestra "renamed: app.js -> cart.js"
git commit -m "Rename app.js to cart.js"Commit
Solución de problemas
fatal: destination exists
Causa: Ya existe un archivo con el nuevo nombre
Elige otro nombre, o usa -f para sobrescribirlo
fatal: not under version control
Causa: El archivo de origen no tiene seguimiento
Renómbralo normalmente, o haz git add primero
Consejos y trampas
Buenas prácticas
- ✓Confirma un renombrado aparte de las ediciones grandes, para que Git lo reconozca como renombrado.
- ✓Usa git log --follow <file> para ver el historial a través de los renombrados.
Errores comunes
- ✗Renombrar en el explorador de archivos y confirmar solo el archivo nuevo — el antiguo sigue con seguimiento.
- ✗Cambiar solo mayúsculas/minúsculas en Windows o macOS sin git mv, algo que Git puede no notar.
- ✗Renombrar y editar mucho un archivo en el mismo commit, de modo que Git ya no detecta el renombrado.
Preguntas frecuentes
No directamente: compara el contenido entre commits y detecta el renombrado.
Sí: git mv src lib renombra la carpeta y todos sus archivos.