2011-09-28 15 views
21

En un momento mi repositorio de git tenía reorganizadas sus rutas.La culpa es de una versión anterior de un archivo en una ubicación diferente

A menudo quiero echarle la culpa a un archivo en una revisión antes del traslado.

¿Cuál es el encantamiento de culpa de git para culpar a un archivo que no existe en el repositorio actual?

me trataron:

> git blame new/path/to/file old_rev 
fatal: no such path ... in old_rev 

> git blame old/path/to/file old_rev 
fatal: cannot stat path ... in old_rev 

> git blame old_rev:old/path/to/file old_rev 
fatal: cannot stat path ... in old_rev 

Es evidente que tan sólo pudiera revisar old_rev y culpar a la ruta adecuada, pero prefiero evitar eso.

Respuesta

20

Puedes usar git blame --follow para hacer que la culpa siga a tus cambios de nombre.

También veo sus parámetros están en el orden equivocado, intente lo siguiente:

git blame old_rev -- old/path/to/file 
+0

cualquier orden funciona si el archivo en cuestión no se ha movido, al menos en las últimas versiones Git. Como resultado, normalmente uso el orden correcto, pero cuando estaba construyendo la pregunta corté y pegué desde el conjunto equivocado de intentos. De todos modos, gracias por la magia del delimitador, ¡eso es lo que me faltaba! –

Cuestiones relacionadas