Curso
Soy ingeniero de aprendizaje automático. Si hay algo esencial que he aprendido, es que el versionado limpio es más que una buena práctica. Es fundamental para la reproducibilidad y la colaboración.
Las etiquetas Git son esenciales para marcar estados estables en el código. Ayudan a realizar lanzamientos, retroceder a una versión anterior o integrarse con flujos de trabajo CI/CD. Tanto si trabajas con código, datos o nuevos modelos de aprendizaje automático, las etiquetas Git te facilitan la vida, independientemente de tu formación o función.
En este tutorial, te explicaré todo lo que necesitas saber para aplicar y dominar las etiquetas Git. ¿Listo para ver cómo las etiquetas Git pueden simplificar tu vida de desarrollador? Vamos a sumergirnos.
>Si primero quieres una visión general rápida de Git, te recomiendo leerg GitHub y Tutorial de Git para principiantes.
¿Qué es una etiqueta Git?
Una etiqueta Git es una forma sencilla pero potente de marcar puntos específicos en la historia de un proyecto. Piensa en ello como si colocaras una nota adhesiva en un compromiso concreto, diciendo: "Esto es importante".
Las etiquetas Git suelen etiquetar versiones de lanzamiento, hitos o puntos de control estables en tu base de código. Son referencias fijas a una confirmación concreta, pero no crean una nueva confirmación. Una vez que etiquetas un commit, esa etiqueta permanece anclada a él, a menos que muevas o elimines manualmente la etiqueta.
La rama maestra con dos etiquetas Git. Imagen del autor.
Hay dos tipos principales de etiquetas:
- Etiquetas ligeras: Son como simples marcapáginas. Apuntan a un commit concreto sin ninguna información adicional. Son rápidos y fáciles de crear, y suelen utilizarse como referencia local o depuración rápida, pero no almacenan metadatos como el autor o un mensaje.
- Etiquetas anotadas: Son más robustos y se almacenan como objetos Git completos. Incluyen el nombre, el correo electrónico, la fecha y el mensaje del etiquetador, e incluso pueden estar firmados criptográficamente. Las etiquetas anotadas son ideales para marcar puntos de publicación o compartir etiquetas con un equipo.
>Para aprender más sobre Git, te recomiendo que consulteslos cursos Fundamentos de Git o Git Intermedio.
Aprende hoy los fundamentos de Git
Cómo crear y gestionar etiquetas Git
Crear y gestionar etiquetas Git es sencillo. Vamos a desglosar los distintos tipos de etiquetas y cómo aplicarlas.
- Para utilizar las etiquetas Git, ya debes tener instalado Git en tu máquina. Puedes leer más sobre la instalación de Git en el Tutorial de instalación de Git.
- Otro requisito previo es tener un repositorio Git inicializado. Puedes leer más en Cómo inicializar y configurar un repositorio Git.
Crear etiquetas ligeras
Una etiqueta ligera es como un puntero a una confirmación. No incluye metadatos, sólo el nombre de la etiqueta y el commit al que apunta.
Para crear uno, puedes ejecutar
git tag v1.0.0
Este comando crea una etiqueta ligera que apunta a la confirmación actual de HEAD
.
También puedes crear una etiqueta para una confirmación específica proporcionando el hash de la confirmación:
git tag v1.0.0 5c5fc06
Las etiquetas ligeras son útiles para referencias rápidas y locales, especialmente en proyectos de desarrollo en solitario o trabajos temporales.
Crear etiquetas anotadas
Las etiquetas anotadas almacenan más información, como el nombre, el correo electrónico, la fecha y el mensaje del etiquetador. Se almacenan como objetos Git completos y son ideales para etiquetar lanzamientos oficiales o hitos.
Puedes crear uno en marcha:
git tag -a v1.0.0 -m "Release version 1.0.0"
Este comando crea una etiqueta anotada llamada v1.0.0
con el mensaje "Release version 1.0.0"
.
También puedes etiquetar una confirmación concreta:
git tag -a v1.0.0 5c5fc06 -m "Tagging older commit"
Las etiquetas anotadas ofrecen una mejor documentación, se integran bien con las herramientas CI/CD y ayudan a los equipos a realizar un seguimiento más transparente del historial.
Etiquetar commits específicos
A veces, debes etiquetar un commit que no es el último. Para ello, primero puedes obtener el historial de confirmaciones y luego seleccionar el hash de la confirmación para la que quieres crear una etiqueta.
Para obtener el hash de confirmación, puedes ejecutar lo siguiente:
git log --oneline
A continuación, copia el hash de confirmación de la lista:
git tag -a v1.0.0 <commit-hash> -m "Tagging v1.0.0 release"
Verificar las etiquetas creadas
Para listar todas las etiquetas de tu repositorio, utiliza:
git tag
Si quieres filtrar las etiquetas, por ejemplo, sólo las versiones que empiecen por v1.
, utiliza:
git tag -l 'v1.*'
Para ver los detalles de una etiqueta concreta, ejecuta
git show v1.0.0
Trabajar con etiquetas Git
Una vez que hayas creado etiquetas Git, a menudo necesitarás compartirlas, actualizarlas o interactuar con ellas como parte de tu flujo de trabajo de desarrollo o publicación. Esta sección cubre las tareas más comunes para trabajar con etiquetas en repositorios locales y remotos.
Enviar etiquetas a un repositorio remoto
Las etiquetas no se envían automáticamente a los repositorios remotos cuando ejecutas git push
. Tienes que empujarlos explícitamente.
Para empujar una sola etiqueta:
git push origin v1.0.0
Para empujar todas las etiquetas a la vez:
git push --tags
Las etiquetas deben empujarse para que tus compañeros de equipoo los conductos CI/CD puedan accesar a ellas. Las etiquetas también se utilizan a menudo como activadores de despliegue, especialmente siguiendo flujos de versiones. Puedes leer más sobre cómo hacer push y pull de ramas en el Tutorial Git Push y Pull.
Borrar etiquetas
Si quieres borrar una etiqueta, puedes hacerlo local y remotamente.
Para borrarlo localmente, ejecuta lo siguiente:
git tag -d v1.0.0
Para luego borrar la misma etiqueta del repositorio remoto:
git push origin --delete v1.0.0
También puedes eliminar directamente la etiqueta desde GitHub o la interfaz web de GitLab.
>Si quieres aprender más sobre GitHub y cómo utilizarlo, te recomiendo los cursoses Fundamentos de GitHub y Conceptos de GitHub.
Comprobación de etiquetas
Puedes comprobar en tu repositorio el estado de una etiqueta concreta ejecutando:
git checkout v1.0.0
Sin embargo, esto te coloca en un estado dedesprendimiento HEAD. Esto significa que ya no estás en una rama, y que los nuevos commits no pertenecerán a ninguna rama a menos que crees una explícitamente:
git checkout -b hotfix-v1.0.0
Comprobar una etiqueta específica ayuda a depurar o revisar una versión concreta sin afectar a tu rama de desarrollo actual. También se utiliza para construir tu aplicación de producción a partir de una versión concreta, por ejemplo, cuando hay que construir una imagen Docker.
Etiquetado después de una confirmación
Si necesitas actualizar una etiqueta, por ejemplo cambiándola a un commit diferente o modificando el mensaje, puedes forzar simplemente una actualización ejecutando:
git tag -f -a v1.0.0 5c5fc06 -m "retagging"
También puedes ejecutar lo mismo sin un hash de confirmación para añadir simplemente la etiqueta a la actual HEAD
.
>Si necesitas una visión rápida de los comandos tradicionales de Git, te recomiendo la Hoja de trucos completa de Git.
Buenas prácticas para utilizar etiquetas Git
Saber crear y gestionar etiquetas es una cosa, pero utilizarlas eficazmente es otra. Si se utilizan bien, las etiquetas pueden mejorar el flujo de trabajo, la documentación y la comunicación en equipo.
Utilizar etiquetas para el control de versiones
Las etiquetas son perfectaspara el versionado semántico, quees la forma recomendada de versionar tus versiones.
En el versionado semántico, tus números de versión siguen el formato MAJOR.MINOR.PATCH
, por ejemplo, v.1.2.0
.
MAJOR
son para cambios más extensos y de ruptura, mientras que las versiones MINOR
son para nuevas funciones añadidas, y PATCH
son para correcciones de errores.
El versionado semántico es muy potente. Comunica claramente el alcance de los cambios, ayuda a los desarrolladores a comprender la compatibilidad y funciona bien con herramientas automatizadas como los activadores CI/CD.
Sigue una convención de nomenclatura coherente. Elige un patrón (por ejemplo, anteponer siempre el prefijo v
) y síguelo en todas tus publicaciones.
Etiquetado de comunicados
Las etiquetas son ideales para marcar las etapas clave de lanzamiento de tu proyecto. Aquí tienes algunos tipos de etiquetas útiles que puedes tener en cuenta:
v1.0.0-alpha
: Versión de prueba internav1.0.0-beta
: Versión beta públicav1.0.0
: Liberación final de la producción
Al etiquetar estas etapas, puedes compartir las compilaciones de prueba con otros más fácilmente, retroceder a versiones anteriores y mantener un historial limpio de las implementaciones de producción.
Puedes mejorar aún más el proceso utilizando etiquetas anotadas para las versiones, a fin de capturar el contexto y la documentación adecuados.
Evitar el uso excesivo de etiquetas
Por muy útiles y potentes que sean las etiquetas, pueden resultar inútiles si se utilizan en exceso. Las etiquetas sólo deben marcar puntos significativos en la historia de tu proyecto, como versiones estables, finalización de características importantes, hitos o plazos.
Etiquetar cada confirmación desordena tu repositorio y frustra el propósito de una navegación rápida. ¡Mantenlo limpio y resuelto!
Una buena regla general es que probablemente no necesite una etiqueta si no la desplegarías o anunciarías.
Solución de problemas de etiquetas Git
Incluso con las mejores prácticas, a veces encontrarás problemas al trabajar con etiquetas Git, especialmente cuando trabajes con equipos o sincronices con repositorios remotos. En esta sección se explica cómo solucionar los problemas más frecuentes.
Manejar el estado HEAD desvinculado
Cuando compruebas una etiqueta específica utilizando:
git checkout v1.0.0
Git te pone en un estado de desapego HEAD
, como ya se ha dicho. Esto significa que no estás en una rama, por lo que si haces un commit, no pertenecerá a ninguna rama y puede perderse a menos que actúes.
Puedes solucionarlo creando una rama ejecutando lo siguiente:
git checkout -b hotfix-v1.0.0
Ahora estás trabajando en una rama y puedes confirmar y enviar cambios como de costumbre.
Resolver conflictos de etiquetas
Pueden producirse conflictos cuando el mismo nombre de etiqueta apunta a diferentes confirmaciones local y remotamente.
Esto suele ocurrir cuando eliminas y vuelves a crear una etiqueta localmente, o cuando alguien fuerza la inserción de una etiqueta.
Hay dos opciones para resolver ese problema.
Opción 1: Borra y vuelve a colocar la etiqueta
git tag -d v1.0.0
git push origin --delete v1.0.0
git tag -a v1.0.0 -m "Corrected tag"
git push origin v1.0.0
Opción 2: Fuerza la actualización de la etiqueta
Si estás seguro de que tu etiqueta local es la correcta y tienes permiso:
git push origin -f v1.0.0
Pero ten cuidado con esa opción, ya que forzar el empuje puede sobrescribir los cambios de otros. Utilízalo sólo cuando tengas confianza o después de comunicarlo a tu equipo.
Conclusión
Las etiquetas Git son una herramienta muy poderosa cuando se utilizan sabiamente. En este tutorial, has aprendido
- Qué son las etiquetas Git y cuándo utilizarlas
- Cómo aplicar etiquetas Git en tu repositorio
- Buenas prácticas para el uso de etiquetas Git
- Cómo solucionar problemas comunes al trabajar con etiquetas Git
Ya sea para publicar modelos de aprendizaje automático, actualizar un producto de datos o colaborar en equipo, las etiquetas te ayudan a marcar momentos significativos en la cronología de tu proyecto. Mantienen las cosas organizadas, reproducibles y fáciles de deshacer o desplegar.
Confío en las etiquetas Git todo el tiempo. Me ahorran horas al permitirme volver a versiones estables cuando aparecen errores o activar flujos de trabajo CI/CD automatizados. Las utilizo para etiquetar y versionar imágenes Docker para compilaciones de producción, asegurándome de que todo lo que envío es totalmente rastreable y está documentado.
Así que, ¡empieza a utilizar etiquetas hoy mismo y transforma tu flujo de trabajo Git!
Aprende hoy los fundamentos de Git
Preguntas frecuentes
¿Para qué sirve una etiqueta Git?
Una etiqueta Git marca puntos específicos en la historia de un repositorio, a menudo para versiones o hitos importantes.
¿Cuál es la diferencia entre las etiquetas Git ligeras y las anotadas?
Las etiquetas ligeras son simples referencias a una confirmación, mientras que las etiquetas anotadas almacenan metadatos como el autor, la fecha y el mensaje.
¿Qué ocurre cuando compruebo una etiqueta en Git?
Entras en un estado "HEAD separado", lo que significa que no estás en una rama, y cualquier confirmación no se guardará en una rama a menos que crees una.
¿Cómo creo una etiqueta Git?
Utiliza git tag
para una etiqueta ligera o git tag -a -m "message"
para una etiqueta anotada.
¿Se utilizan habitualmente las etiquetas Git en los flujos de trabajo CI/CD?
Sí. Las etiquetas pueden desencadenar compilaciones o despliegues automatizados en canalizaciones CI/CD, especialmente cuando se etiquetan versiones de lanzamiento.
Soy un Ingeniero de la Nube con una sólida base de Ingeniería Eléctrica, aprendizaje automático y programación. Mi carrera comenzó en visión por ordenador, centrándome en la clasificación de imágenes, antes de pasar a MLOps y DataOps. Me especializo en la creación de plataformas MLOps, el apoyo a los científicos de datos y la entrega de soluciones basadas en Kubernetes para agilizar los flujos de trabajo de aprendizaje automático.