El etiquetado permite a los desarrolladores marcar puntos de control importantes en el curso del desarrollo de sus proyectos. Por ejemplo, se pueden etiquetar las versiones de lanzamiento de software. (Ej: v1.3.2) Básicamente le permite darle a una confirmación un nombre especial (etiqueta).
Para ver todas las etiquetas creadas en orden alfabético:
git tag
Para obtener más información sobre una etiqueta:
git show v1.4
Hay dos tipos de etiquetas:
Anotado
git tag -a v1.2 -m "my version 1.4"
Ligero
git tag v1.2
Se diferencian en la forma en que se almacenan.
Estos crean etiquetas en su compromiso actual.
En caso de que desee etiquetar una confirmación anterior, especifique la ID de confirmación que desea etiquetar:
git tag -a v1.2 9fceb02
Los nombres de las etiquetas se pueden usar en lugar de los ID de confirmación mientras se comprueban y se envían confirmaciones a un repositorio remoto.
Más información:
- Documentación de Git: Documentación
- Capítulo de etiquetado de Git: Libro
Puede enumerar todas las etiquetas disponibles en un proyecto con el git tag
comando (tenga en cuenta que aparecerán en orden alfabético):
$ git tag v1.0 v2.0 v3.0
Esta forma de enumerar etiquetas es ideal para proyectos pequeños, pero los proyectos más grandes pueden tener cientos de etiquetas, por lo que es posible que deba filtrarlas cuando busque un punto importante en el historial. Puede encontrar etiquetas que contengan caracteres específicos agregando un -l
al git tag
comando:
$ git tag -l "v2.0*" v2.0.1 v2.0.2 v2.0.3 v2.0.4
Crea una etiqueta
Puede crear dos tipos de etiquetas: anotadas y ligeras. Los primeros son objetos de competencia en la base de datos GIT: se suman, requieren un mensaje (como confirmaciones) y almacenan otros datos importantes como nombre, correo electrónico y fecha. Por otro lado, las etiquetas ligeras no requieren un mensaje ni almacenan otros datos, y funcionan como un puntero a un punto específico del proyecto.
Crea una etiqueta anotada
Para crear una etiqueta anotada, agregue -a tagname -m "tag message"
al git tag
comando:
$ git tag -a v4.0 -m "release version 4.0" $ git tag v1.0 v2.0 v3.0 v4.0
Como puede ver, el -a
especifica que está creando una etiqueta anotada, luego viene el nombre de la etiqueta y finalmente, el -m
mensaje de la etiqueta para almacenar en la base de datos de Git.
Crea una etiqueta ligera
Las etiquetas ligeras contienen solo la suma de comprobación de confirmación (no se almacena ninguna otra información). Para crear una, simplemente ejecute el git tag
comando sin ninguna otra opción (los caracteres -lw al final del nombre se utilizan para indicar etiquetas ligeras, pero puede marcarlas como desee):
$ git tag v4.1-lw $ git tag v1.0 v2.0 v3.0 v4.0 v4.1-lw
Esta vez no especificó un mensaje u otros datos relevantes, por lo que la etiqueta contiene solo la suma de comprobación de la confirmación referida.
Ver los datos de la etiqueta
Puede ejecutar el git show
comando para ver los datos almacenados en una etiqueta. En el caso de las etiquetas anotadas, verá los datos de la etiqueta y los datos de confirmación:
$ git show v4.0 tag v4.0 Tagger: John Cash Date: Mon Sat 28 15:00:25 2017 -0700 release version 4.0 commit da43a5fss745av88d47839247990022a98419093 Author: John Cash Date: Fri Feb 20 20:30:05 2015 -0700 finished details
Si la etiqueta que está viendo es una etiqueta ligera, solo verá los datos de confirmación referidos:
$ git show v1.4-lw commit da43a5f7389adcb9201ab0a289c389ed022a910b Author: John Cash Date: Fri Feb 20 20:30:05 2015 -0700 finished details
Etiquetado de confirmaciones antiguas
También puede etiquetar confirmaciones pasadas usando la etiqueta git commit. Para hacer esto, deberá especificar la suma de comprobación de la confirmación (o al menos una parte de ella) en la línea del comando.
Primero, ejecute git log para averiguar la suma de comprobación de la confirmación requerida:
$ git log --pretty=oneline ac2998acf289102dba00823821bee04276aad9ca added products section d09034bdea0097726fd8383c0393faa0072829a7 refactorization a029ac120245ab012bed1ca771349eb9cca01c0b modified styles da43a5f7389adcb9201ab0a289c389ed022a910b finished details 0adb03ca013901c1e02174924486a08cea9293a2 small fix in search textarea styles
Cuando tenga la suma de comprobación necesaria, agréguela al final de la línea de creación de etiquetas:
$ git tag -a v3.5 a029ac
Verá que la etiqueta se agregó correctamente ejecutándose git tag
:
$ git tag v1.0 v2.0 v3.0 v3.5 v4.0 v4.1-lw
Etiquetas push
Git no envía etiquetas de forma predeterminada cuando ejecuta el comando git push. Entonces, para enviar con éxito una etiqueta a un servidor, tendrá que git push origin
ordenar:
$ git push origin v4.0 Counting objects: 14, done. Delta compression using up to 8 threads. Compressing objects: 100% (16/16), done. Writing objects: 100% (18/18), 3.15 KiB | 0 bytes/s, done. Total 18 (delta 4), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0
You can also use the --tags
option to add multiple tags at once with the git push origin
command:
$ git push origin --tags Counting objects: 1, done. Writing objects: 100% (1/1), 160 bytes | 0 bytes/s, done. Total 1 (delta 0), reused 0 (delta 0) To [email protected]:jcash/gitmanual.git * [new tag] v4.0 -> v4.0 * [new tag] v4.1-lw -> v4.1-lw
Checking out Tags
You can use git checkout
to checkout to a tag like you would normally do. But you need to keep in mind that this would result a detached HEAD state.
$ git checkout v0.0.3 Note: checking out 'v0.0.3'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout.
Deleting a Tag
You may find a situation were you want to delete a certain tag. There’s a very useful command for this situations:
$ git tag --delete v0.0.2 $ git tag v0.0.1 v0.0.3 v0.0.4
More Information
- Git Pro - Tagging Basics
- Git Pro - Documentation
- Git HowTo
- Git tip: Tags
- Creating a tag
Sources
Git documentation: tags