git mv

Instantáneas básicas

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>
[ ] opcional| o<arg> valor a sustituir... repetible--flag opción

Ejemplos

Renombrar un archivo

git mv app.js cart.js

Renombra el archivo y prepara el renombrado.


Mover a una carpeta

git mv cart.js src/cart.js

Mueve el archivo a una carpeta existente.


Historial tras un renombrado

git log --follow cart.js

Sigue el historial hacia atrás a través del renombrado.

Ejemplos de flujos de trabajo

1
git mv app.js cart.js

Renombrar y preparar

2
git status

Muestra "renamed: app.js -> cart.js"

3
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

A:

No directamente: compara el contenido entre commits y detecta el renombrado.

A:

Sí: git mv src lib renombra la carpeta y todos sus archivos.