sig - github sin in
¿En qué circunstancias debo agregar el indicador-a al comando git tag? (5)
¿Cuáles son los casos de uso para cada versión?
man git-tag dice:
Las etiquetas anotadas están destinadas a ser liberadas, mientras que las etiquetas livianas están diseñadas para etiquetas de objetos privadas o temporales.
Y ciertos comportamientos los diferencian de manera que esta recomendación es útil, por ejemplo:
- Las etiquetas anotadas pueden contener un mensaje, un creador y una fecha diferente a la confirmación a la que apuntan. Así que podría usarlos para describir un lanzamiento sin hacer un compromiso de lanzamiento. Las etiquetas ligeras no tienen esa información adicional.
- git push --follow-tags solo empujará etiquetas anotadas
-
git describe
sin opciones de línea de comandos solo ve etiquetas anotadas
Ver también:
Soy consciente de las diferencias técnicas entre los dos tipos de comando (el uso sin -a crea una etiqueta liviana que es esencialmente una rama que nunca se mueve, el uso con -a crea un objeto completo en la base de datos de objetos de Git que incluye el nombre del remitente, correo electrónico , etc).
La pregunta es: ¿cuál debería usar en mis proyectos (para indicar versiones de lanzamiento en Github, por ejemplo)? Y si uno es muy preferido sobre otro, ¿por qué existe la otra opción? ¿Cuáles son los casos de uso para cada versión?
El estilo más común es usar etiquetas anotadas para etiquetas permanentes, cosas que espera presionar y que otras personas deben ver. Las etiquetas livianas se usan para etiquetas temporales, cosas que no presionarás y que no quieres que vean otras personas.
Hace unos años tuve una opinión sobre esto que creo que todavía puede ser relevante.
Si desea empujarlos / buscarlos, entonces debería usar etiquetas anotadas.
Yo diría que con el trabajo publicado, siempre debe usar etiquetas anotadas. Esa información extra nunca te hará daño.
Las etiquetas ligeras me parecen más para cuando estás perezoso. Tal vez una etiqueta temporal (solo asegúrate de no presionarla accidentalmente; en realidad, solo podrías usar una rama), o tal vez un repositorio personal donde no haya mucha utilidad para la información adicional. Mi conjetura es que muchos proyectos más pequeños hacen esto también; Simplemente no están realmente preocupados por la información. Probablemente solo hay un integrador, nadie está preocupado por verificar las etiquetas firmadas, y son simples marcadores de las versiones de lanzamiento. (Sigo pensando que deberías preferir etiquetas anotadas, por si acaso!)
Otra forma de verlo: las etiquetas livianas son como escribir un mensaje de confirmación realmente malo. Realmente no deberías hacerlo, pero a veces la gente lo hace, generalmente cuando nadie está mirando.