Quiero que git enumere todas las etiquetas junto con la anotación completa o el mensaje de confirmación. Algo como esto está cerca:
git tag -n5
Esto hace exactamente lo que quiero, excepto que solo se mostrará hasta las primeras 5 líneas del mensaje de etiqueta.
Supongo que puedo usar un número muy grande. ¿Cuál es el número más alto que puedo usar aquí? ¿Es lo mismo en todas las computadoras?
ACTUALIZACIÓN : He tenido mucho tiempo para pensar en esto, y ahora creo que no necesariamente quiero mostrar la totalidad de cada mensaje si algunos de ellos son extraordinariamente largos. Realmente no tenía ninguna necesidad particular que me obligara a ver mensajes masivos (aparte de mi propia propensión a quedarme sin aliento en todo lo que escribo, incluidos los mensajes de etiqueta). Simplemente no me gustó la idea de que no necesariamente iba a mostrarme el mensaje completo, ya que eso me hizo sentir que me estaba ocultando información. Pero demasiada información también puede ser algo malo.
git tag -n
lo hizo por mígit tag -n
solo imprime la primera línea de la anotación, de acuerdo con la página del manual.Respuestas:
Pruebe esto, enumerará todas las etiquetas junto con anotaciones y 9 líneas de mensaje para cada etiqueta:
también puede usar
si se van a enumerar etiquetas específicas:
(por ejemplo, el comando anterior solo mostrará etiquetas que comiencen con "v3")
-l, --list Lista de etiquetas con nombres que coinciden con el patrón dado (o todos si no se da ningún patrón). Ejecutar "git tag" sin argumentos también enumera todas las etiquetas. El patrón es un comodín de shell (es decir, emparejado usando fnmatch (3)). Se pueden dar múltiples patrones; Si alguno de ellos coincide, se muestra la etiqueta.
fuente
-l
opción es filtrar por un patrón. No veo cómo eso sería útil aquí. ¿Me estoy perdiendo de algo?-l
aquí es totalmente superfluoCorto y dulce. Esto enumerará hasta 99 líneas de cada anotación de etiqueta / mensaje de confirmación. Aquí hay un enlace a la documentación oficial de git tag .
Ahora creo que la limitación de mostrar solo hasta 99 líneas por etiqueta es realmente buena, ya que la mayoría de las veces, si hubiera realmente más de 99 líneas para una sola etiqueta, realmente no querría ver el resto de las lineas tu? Si desea ver más de 99 líneas por etiqueta, siempre puede aumentar esto a un número mayor.
Quiero decir, supongo que podría haber una situación o razón específica para querer ver mensajes de etiquetas masivas, pero ¿en qué punto no quieres ver el mensaje completo? ¿Cuándo tiene más de 999 líneas? 10.000? 1,000,000? Mi punto es que, por lo general, tiene sentido tener un límite en la cantidad de líneas que vería, y este número le permite configurarlo.
Como estoy argumentando lo que generalmente quieres ver al mirar tus etiquetas, probablemente tenga sentido establecer algo como esto como un alias (del comentario de Iulian Onofrei a continuación):
git config --global alias.tags 'tag -n99'
Quiero decir, realmente no quieres tener que escribir
git tag -n99
cada vez que solo quieres ver tus etiquetas, ¿verdad? Una vez que se configura ese alias, cada vez que quiera ver sus etiquetas, simplemente escribagit tags
en su terminal. Personalmente, prefiero ir un paso más allá y crear alias de bash aún más abreviados para todos mis comandos de uso común. Para ese propósito, puede agregar algo como esto a su archivo .bashrc (funciona en Linux y entornos similares):alias gtag='git tag -n99'
Luego, cuando quiera ver sus etiquetas, simplemente escriba
gtag
. Otra ventaja de recorrer el camino del alias (ya sea git alias o bash alias o lo que sea) es que ahora tiene un lugar donde puede agregar más personalizaciones a su forma personal, generalmente desea que se le muestren sus etiquetas (como ordenar ellos de ciertas maneras como en mi comentario a continuación, etc.). Una vez que superes el apuro de crear tu primer alias, ahora te darás cuenta de lo fácil que es crear más de ellos para otras cosas que te gusta trabajar de forma personalizada, comogit log
, pero guardemos ese para una pregunta / respuesta diferente .fuente
git config --global alias.tags 'tag -n99'
alias gtag='git for-each-ref --format="%(refname:short) %(taggerdate) %(subject) %(body)" refs/tags | sort -V'
La respuesta de Mark Longair (usando
git show
) está cerca de lo que se desea en la pregunta. Sin embargo, también incluye el commit señalado por la etiqueta, junto con el parche completo para ese commit. Dado que el commit puede no estar relacionado con la etiqueta (es solo un commit que la etiqueta intenta capturar), esto puede ser indeseable. Creo que lo siguiente es un poco mejor:fuente
Está lejos de ser bonito, pero podría crear un script o un alias que haga algo como esto:
fuente
git for-each-ref refs/tags/ --format='%(refname)'
congit tag -l
?git tag
es de porcelana y degit for-each-ref
fontanería, por lo que la salida de este último debería ser más estable para las secuencias de comandos.Último mensaje de etiqueta solamente:
fuente
git cat-file -p <tag> | tail -n +6
Use la opción --format
fuente
Prefiero hacer esto en la línea de comando, pero si no le importa una interfaz web y usa GitHub, puede visitar
https://github.com/user/repo/tags
y hacer clic en "..." al lado de cada etiqueta para mostrar su anotación.fuente