¿Cómo hacer que git marque un archivo eliminado y uno nuevo como un archivo en movimiento?

Resuelto Pablo Fernandez asked hace 16 años • 15 respuestas

Moví un archivo manualmente y luego lo modifiqué. Según Git, es un archivo nuevo y un archivo eliminado. ¿Hay alguna forma de obligar a Git a tratarlo como un movimiento de archivo?

Pablo Fernandez avatar Jan 11 '09 23:01 Pablo Fernandez
Aceptado

Git detectará automáticamente el movimiento/cambio de nombre si su modificación no es demasiado severa.

Solo git addel archivo nuevo y git rmel archivo antiguo.

git statusLuego mostrará si ha detectado el cambio de nombre.

Además, para moverse por directorios, es posible que necesite:

  1. cd a la parte superior de esa estructura de directorios.
  2. Corrergit add -A .
  3. Ejecute git statuspara verificar que el "archivo nuevo" ahora sea un archivo "renombrado"

Si el estado de git aún muestra "archivo nuevo" y no "renombrado", debe seguir el consejo de Hank Gay y realizar el movimiento y modificarlo en dos confirmaciones separadas.

Bombe avatar Jan 11 '2009 16:01 Bombe

Realice el movimiento y la modificación en confirmaciones separadas.

Git rastrea las adiciones y eliminaciones, pero aún no cambia el nombre/mueve (si es que alguna vez lo hace), y es culpa de su medio de descripción general que más que 50%un cambio no cuente como un movimiento, Git no tiene nada parecido a un movimiento.

Por ejemplo, git logse puede configurar para considerar un 20% de similitud como cambio de nombre/mover, con -M20, como:

git log -p --stat -M20
Hank Gay avatar Jan 11 '2009 16:01 Hank Gay

git diff -Mo git log -Mdebería detectar automáticamente dichos cambios como un cambio de nombre con cambios menores, siempre que realmente lo sean. Si sus cambios menores no son menores, puede reducir el umbral de similitud, por ejemplo

$ git log -M20 -p --stat

para reducirlo del 50% predeterminado al 20%.

 avatar Jan 12 '2009 00:01