2012-08-27 7 views
9

Si alguna vez movimos un archivo a una ubicación diferente o lo cambiamos de nombre, todo su historial anterior se pierde en git log, a menos que usemos específicamente git log --follow. Normalmente, creo que el comportamiento esperado es que nos gustaría ver la historia pasada, no "cortar" después de cambiar el nombre o mover, entonces ¿hay alguna razón por la cual git log no usa la bandera --follow?¿Por qué git log no está configurado de forma predeterminada en el registro de git --follow?

+2

Git 2.6+ (Q3 2015) propondrá 'git config log.follow true' para eso: ver [mi respuesta a continuación] (http://stackoverflow.com/a/32039661/6309) – VonC

Respuesta

5

Presumiblemente es porque git log se usa generalmente para mostrar historias de confirmación generales, y no el historial de un solo archivo o ruta. La opción --follow solo es relevante si está viendo un solo archivo (y no funciona cuando nombra más de un archivo). Como ese no es el caso más común, no tiene sentido agregarlo como el predeterminado.

Si desea que sea un defecto por sí mismo, siempre se puede hacer un alias:

git config --global alias.lf 'log --follow' 

Ahora usted puede hacer git lf <filename> para obtener el comportamiento que desea.

Nota: Si quieres proponer el cambio que está pidiendo a la lista de correo y ver lo que la gente piensa, usted puede hacer que here. O, mejor aún, podría submit a patch!

+0

aha, entonces si es un archivo único, tal vez tendría sentido establecer '' --follow' por defecto. La razón por la que no sigue más de un archivo probablemente se deba a razones de velocidad? –

+0

@ 動靜 能量: No quiero especular, pero parece poco probable. git le permite hacer muchas opciones que serían muy costosas de calcular (por ejemplo, rebases complejas, etc.). –

21

Nota: al iniciar git 2.6 (Q3 2015), el registro de git puede seguir el historial de forma predeterminada para un archivo.

Ver commit 076c983 (08 de julio de 2015) por David Turner (dturner-tw).
(Fusionado por Junio C Hamano -- gitster -- en commit 2dded96 03 Ago 2015)

log: añadir "log.follow" variable de configuración

Las personas que trabajan en proyectos con la historia sobre todo lineal con frecuentes cambios de nombre de archivos enteros pueden querer siempre use "git log --follow" al inspeccionar la vida del contenido que vive en una sola ruta.

Teach el comando se comporte como si "--follow" fue dado de la línea de comandos cuando log.follow variable de configuración se establece y hay uno (y sólo uno) ruta de acceso en la línea de comandos.

git config log.follow true 
+0

¡Buenas noticias, gracias! – guettli

Cuestiones relacionadas