¿Cómo puedo determinar cuándo se creó una rama de Git?

Resuelto oz10 asked hace 14 años • 16 respuestas

¿ Hay alguna manera de determinar cuándo se creó una rama de Git?

Tengo una rama en mi repositorio y no recuerdo haberla creado y pensé que tal vez ver la marca de tiempo de creación me refrescaría la memoria.

oz10 avatar Feb 13 '10 05:02 oz10
Aceptado

Como se señala en los comentarios y en la respuesta de Jackub , siempre que su sucursal sea más reciente que la cantidad de días establecida en la configuración gc.reflogexpire(el valor predeterminado es 90 días), puede utilizar su reflog para averiguar cuándo se hizo una referencia de sucursal. creado por primera vez.

Tenga en cuenta que git reflogpuede aceptar la mayoría de git loglas banderas. Tenga en cuenta además que los HEAD@{0}selectores de estilo son efectivamente nociones de tiempo y, de hecho, se manejan (de una manera pirateada) como cadenas de fechas. Esto significa que puede usar la bandera --date=localy obtener un resultado como este:

$ git reflog --fecha=local
763008c HEAD @ {viernes 20 de agosto 10:09:18 2010}: tirar: avance rápido
f6cec0a HEAD@{martes 10 de agosto 09:37:55 2010}: tirar: avance rápido
e9e70bc HEAD @ {jueves 4 de febrero 02:51:10 2010}: tirar: avance rápido
836f48c HEAD@{jueves 21 de enero 14:08:14 2010}: pago: pasar de maestro a maestro
836f48c HEAD @ {jueves 21 de enero 14:08:10 2010}: tirar: avance rápido
24bc734 HEAD@{miércoles 20 de enero 12:05:45 2010}: pago: pasar de 74fca6a42863ffacaf7ba6f1936a9f228950f657
74fca6a HEAD@{miércoles 20 de enero 11:55:43 2010}: pago: pasar de maestro a v2.6.31
24bc734 HEAD@{miércoles 20 de enero 11:44:42 2010}: tirar: avance rápido
964fe08 HEAD@{lunes 26 de octubre 15:29:29 2009}: pago: pasando de 4a6908a3a050aacc9c3a2f36b276b46c0629ad91
4a6908a HEAD@{lunes 26 de octubre 14:52:12 2009}: pago: pasar del maestro a v2.6.28

A veces también puede resultar útil utilizar --date=relative:

$ git reflog --fecha=relativa
763008c HEAD@{hace 4 semanas}: tirar: avance rápido
f6cec0a HEAD@{hace 6 semanas}: tirar: avance rápido
e9e70bc HEAD@{hace 8 meses}: tirar: avance rápido
836f48c HEAD@{hace 8 meses}: pago: pasar de maestro a maestro
836f48c HEAD@{hace 8 meses}: tirar: avance rápido
24bc734 HEAD@{hace 8 meses}: pago: pasar de 74fca6a42863ffacaf7ba6f1936a9f228950f657 a master
74fca6a HEAD@{hace 8 meses}: pago: pasar de maestro a v2.6.31
24bc734 HEAD@{hace 8 meses}: tirar: avance rápido
964fe08 HEAD@{hace 11 meses}: pago: pasar de 4a6908a3a050aacc9c3a2f36b276b46c0629ad91 a master
4a6908a HEAD@{hace 11 meses}: pago: pasar de maestro a v2.6.28

Una última nota: la --allbandera (que en realidad es una bandera de git-log entendida por git-reflog) mostrará los registros de todas las referencias conocidas en refs/(en lugar de simplemente, HEAD), lo que le mostrará los eventos de rama claramente:

git reflog --fecha=local --todos
860e4e4 refs/heads/master@{dom 19 de septiembre 23:00:30 2010}: confirmación: segundo.
17695bc refs/heads/example_branch@{lunes 20 de septiembre 00:31:06 2010}: rama: creada a partir de HEAD
Aaron avatar Sep 20 '2010 04:09 Aaron

Usar

git show --summary `git merge-base foo master`

Si prefieres verlo en contexto usando gitk , entonces usa

gitk --all --select-commit=`git merge-base foo master`

(donde foo es el nombre de la sucursal que está buscando).

Captura de pantalla

Greg Bacon avatar Feb 12 '2010 22:02 Greg Bacon