Cambié el nombre de un par de archivos usando git mv
, usado git stash
, eché un vistazo rápido a HEAD (sin cambiarlo) y luego lo hice git stash pop
para recuperar todo el lote nuevamente. Mis movimientos habían desaparecido de la lista de confirmaciones, así que los rehice git rm
y el mensaje de confirmación afirmaba que git había detectado que el cambio de nombre era un cambio de nombre. Así que no pensé más en eso.
Pero ahora, después de la confirmación, ¡no puedo acceder al historial de los archivos movidos! Esto es lo que dice git sobre la confirmación en cuestión:
~/projects% git log --summary
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
delete mode 100644 test/R_DebugUI_iOS.h
delete mode 100644 test/R_DebugUI_iOS.m
create mode 100644 system/runtime/src/R_DebugUI_iOS.h
create mode 100644 system/runtime/src/R_DebugUI_iOS.m
<<snip older commits>>
~/projects%
Ahora estoy tratando de obtener el historial de uno de estos archivos movidos, para poder ver una versión anterior, pero no obtengo nada muy útil:
~/projects/system/runtime/src% git log --follow --find-copies-harder -M -C R_DebugUI_iOS.m
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
~/projects/system/runtime/src%
(También he intentado sin -M
, -C
y --find-copies-harder
, pero fue en vano.)
Puedo obtener su historial con su nombre anterior, que se detiene en el punto en que se eliminó de su ubicación anterior:
~/projects% git log --summary --follow --find-copies-harder -M -C -- test/R_DebugUI_iOS.m
commit de6e9fa2179ae17ec35a5c368d246f19da27f93a
Author: brone
Date: Wed Dec 8 22:37:54 2010 +0000
Moved R_DebugUI into runtime
delete mode 100644 test/R_DebugUI_iOS.m
commit 32a22d53c27e260714f759ecb3d3864e38b2e87f
Author: brone
Date: Tue Dec 7 23:52:51 2010 +0000
Can set debug UI's alpha.
<<snip older commits>>
~/projects%
Así que no estoy completamente estancado esta vez, pero no me gustaría tener que hacer este tipo de cosas todo el tiempo. (Anticipo tener una buena cantidad de archivos que se moverán al menos una vez en su vida).
¿Estoy haciendo algo mal? La copia antigua del archivo y la nueva copia son 98,8% iguales (2 líneas de 166 cambiadas). Tengo entendido que git debería poder rastrear el archivo en este caso, porque infiere operaciones de cambio de nombre en lugar de almacenarlas explícitamente, y los archivos son lo suficientemente similares como para que creo que debería considerarlos iguales.
¿Hay algo que pueda hacer para solucionar este problema?