Comando git para mostrar todas las fechas de creación de etiquetas (ligeras)

186

¿Hay un forro que me muestre las fechas en que se crearon todas las etiquetas ligeras de git?

Algo como git show tags --format=date:?

Dror Cohen
fuente
1
@jleedev: Estaba buscando una solución para etiquetas livianas. Editaré mi pregunta en consecuencia.
Dror Cohen
También de posible interés para esta Q: stackoverflow.com/questions/2021599/…
Steen
12
No hay información de fecha adjunta a una etiqueta ligera. Por lo tanto, la respuesta aceptada es incorrecta. Las fechas en la salida de git log --tags --simplify-by-decoration --pretty="format:%ai %d"son las fechas de los objetos a los que apuntan las etiquetas, no las fechas en que se crearon las etiquetas.
jub0bs
2
@Jubobs estrictamente hablando, tienes razón: la respuesta correcta es: "Es imposible hacer lo que quieres". Pero eso es probablemente lo que quería el OP.
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功

Respuestas:

303

En este enlace encontré una solución que se adapta a mis necesidades:

git log --tags --simplify-by-decoration --pretty="format:%ai %d"

Puse ese comando en un alias en mi ~/.alias, así que ahora cada vez que corro gitshowtagbydateobtengo lo que necesitaba.

Dror Cohen
fuente
8
Vale la pena poner esto en orden para obtener un orden cronológico, si te gusta ese tipo de cosas.
cam8001
41
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d':-)
Noah Sussman
2
git log --decorate = full --all --pretty = format: '% h% d% s% cr% ae' --abbrev-commit | grep 'refs / tags'
sivann
49
No hay información de fecha adjunta a una etiqueta ligera. Por lo tanto, esta respuesta es incorrecta. Las fechas en la salida de git log --tags --simplify-by-decoration --pretty="format:%ai %d"son las fechas de los objetos a los que apuntan las etiquetas, no las fechas en que se crearon las etiquetas.
jub0bs
1
@Jubobs Si su sistema de etiquetado realiza una confirmación por separado, como Maven , o si escribe la nueva versión de la etiqueta manualmente en un archivo de versión, por ejemplo, no importará si es una etiqueta liviana o una etiqueta anotada . Esto se debe a que la confirmación vinculada a la etiqueta ligera contendrá la fecha actual y la información de confirmación, de todos modos.
ingyhere
61

El git tag -lmuestra una lista de todas las etiquetas. El --formatargumento se puede usar para definir una salida personalizada. Por ejemplo:

git tag -l --format='%(refname)   %(taggerdate)'

Actualización, basada en los comentarios a continuación:

 git tag -l --sort=-creatordate --format='%(creatordate:short):  %(refname:short)'
vdboor
fuente
13
Delimitado por tubería, formato de fecha iso 8601, ordenado con el último en la parte superior. git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
ingyhere
14
taggerdateno siempre se establece; tratar creatordate.
9000
77
Versión @ingyhere era lo que estaba buscando - git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r- ref para la personalización de la marca de tiempo
Revelt
1
@revelt git> = 2.0 proporciona un parámetro de ordenación. Ponga un signo negativo para invertir el orden. git tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
con--
De acuerdo con git-for-each-refla forma en que la formatbandera determina y representa los campos, puede agregar un *antes del nombre del campo para que llegue a la fecha del objeto al que apunta la etiqueta. --format='%(*creatordate)'aunque no vi ninguna diferencia cuando intenté esto.
Cheruvim hace