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:
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)'
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.
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.Respuestas:
En este enlace encontré una solución que se adapta a mis necesidades:
Puse ese comando en un alias en mi
~/.alias
, así que ahora cada vez que corrogitshowtagbydate
obtengo lo que necesitaba.fuente
git log --date-order --graph --tags --simplify-by-decoration --pretty=format:'%ai %h %d'
:-)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.El
git tag -l
muestra una lista de todas las etiquetas. El--format
argumento se puede usar para definir una salida personalizada. Por ejemplo:Actualización, basada en los comentarios a continuación:
fuente
git tag -l --format="%(taggerdate:iso8601)|%(refname:short)" | sort -r
taggerdate
no siempre se establece; tratarcreatordate
.git tag -l --format="%(creatordate:short)|%(refname:short)" | sort -r
- ref para la personalización de la marca de tiempogit tag -l --sort=-creatordate --format='%(creatordate:short)|%(refname:short)'
git-for-each-ref
la forma en que laformat
bandera 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.