Esteban Pallares Rodriguez
Abel Enrique Herrera Montiel
Pablo Cesar Acosta Paredes
Etiquetar versiones importantes y revisar commits sin romper tu trabajo son dos tareas que en Git resuelves con Git Tag y Git Checkout. Aquí aprendes cómo usarlos juntos para marcar hitos en tu historial y explorar puntos previos sin afectar la rama principal, ideal si trabajas en equipo y necesitas control de versiones limpio.
¿Para qué sirve Git Tag en el control de versiones?
Git Tag te permite añadir una etiqueta a un commit específico para marcarlo como un hito. Piensa en una versión estable, una release alpha o cualquier punto que tu equipo quiera recordar con facilidad cuando navegue por el historial.
¿Qué es un tag en Git? Es una etiqueta que asocias a un commit para identificarlo con un nombre claro, como
v1.0. No altera el historial ni los archivos, solo agrega un marcador visible enGit Log.
La lógica estricta diría que cada commit debería llevar tag, pero eso genera trabajo extra innecesario. Lo común es acordar con tu equipo en qué commits sí tiene sentido etiquetar: lanzamientos, milestones o versiones decimales acordadas.
¿Cómo crear un tag con mensaje?
Para crear una etiqueta anotada usas el comando con el flag -a y agregas un mensaje descriptivo con -m [01:30]:
bash git tag -a v1.0 -m "Mi primera versión"
Después de ejecutarlo, al correr git log verás junto a HEAD -> main la etiqueta v1.0 como un indicador del avance. Es como poner un separador en un libro largo: cuando tengas 100 o 200 commits, navegar entre tags es mucho más cómodo que recorrer todo el historial.
¿Cómo listar y ver detalles de un tag?
Si quieres ver únicamente la lista de etiquetas (no de commits), escribes:
git tag lista todos los tags creados.git show v1.0 muestra autor, fecha, mensaje, commit asociado y los cambios realizados en ese commit.Esto último es clave porque git show te entrega más información que un commit suelto: qué cambió, quién lo hizo y por qué. En historiales grandes esa narrativa pesa más que el hash.
¿Cómo elimino o corrijo un tag mal nombrado?
Si te equivocaste al nombrar la versión, puedes borrar el tag con el flag -d (delete) [03:45]:
bash git tag -d v1.0
Eliminar una etiqueta no altera commits, archivos ni el historial. Solo retira el marcador. Después puedes crear uno nuevo, por ejemplo git tag v2.0, y verificar con git log que el cambio quedó aplicado. Agregar o quitar etiquetas es una operación segura que no afecta el trabajo del resto del equipo.
¿Cómo uso Git Checkout para explorar commits anteriores?
Git Checkout no solo sirve para alternar entre ramas. También te deja viajar a un commit específico para evaluar cambios sin tocar main. Copias el hash del commit y ejecutas:
bash git checkout <hash>
Al entrar, Git te muestra una leyenda indicando que estás en estado detached HEAD. Si revisas con git log, notarás que HEAD ya no apunta a main con la flechita habitual. Estás ubicado en un punto temporal del historial.
¿Qué significa HEAD detached? Es cuando HEAD apunta a un commit específico en lugar de a una rama. Puedes editar y probar archivos, pero los cambios no afectan a main a menos que crees una rama nueva.
¿Puedo modificar archivos dentro de ese estado temporal?
Sí, y ahí está la magia. Si haces ls verás los archivos tal como existían en ese commit. Puedes crear nuevos, por ejemplo:
nano testing3.txt y guardas el contenido.git status que el cambio quedó registrado solo en ese espacio temporal.Todo ocurre en un sandbox aislado. Es ideal para experimentar sin riesgo de romper el proyecto principal.
¿Cómo regreso a main sin dejar rastro?
Cuando terminas tus pruebas, limpias la terminal y ejecutas [07:20]:
bash git checkout main
HEAD vuelve a apuntar a main y recuperas el estado original del proyecto, incluyendo el tag que ya tenías. Para confirmar que nada se alteró, corres git branch y verificas que no se creó ninguna rama nueva ni hubo modificaciones permanentes.
La ventaja es enorme: regresas a un commit previo, juegas con los archivos, validas hipótesis y, si no funciona, vuelves a la realidad donde todo está en orden. Cero consecuencias en el historial compartido.
¿Ya tienes claro en qué commits de tu proyecto pondrías un tag? Cuéntame en los comentarios cómo organizas las versiones con tu equipo.
Esteban Pallares Rodriguez
Abel Enrique Herrera Montiel
Pablo Cesar Acosta Paredes
Ederson Felipe Lopez Bolivar
Yerson Steven Rojas Barragan
Pablo Rivera
Alexis Dorado Muñoz
Hector Alvaro Garzon Buitrago
Maryan Espinoza
Amin Espinoza
ProfesorEnrique Lisandro Flores Brito
Fernando Emilio Díaz López
Jesús Humberto Morales Mojica
Fernando Emilio Díaz López
Jacqueline Vera Hilario
Julieta Melek Fernanda Eyzaguirre Arenas
Jonatan Martin
Daniel Vergel
Camilo Roncancio
Josue Daniel Ajpacaja Santos
René Isaías Casulá Rodríguez
Frany Esmeralda Peña
Willian Sanchez
Fernando Michel Baladi Tahan
Andrea Rosero
Carlos Mayorga
David Amiel
Richard Linarez
ROMMEL DUAREZ SAENZ
Dario Bublitz
Dario Bublitz
Dario Bublitz
Dario Bublitz
Flavio S Barajas Torres
Si se quiere colocar una etiqueta a un commit especifico debes colocar el numero del commit luego de la version de este modo
git tag -a v1.0 #de commit -m "mensaje del tag"
Gracias por resolver mi duda
genial la aclaración
gracias
COMO AGREGARLE ETIQUETAS A LOS COMMITS
git tag > Es como una etiqueta que le puedes aplicar a un commit que ayuda a identificar en un futuro, al aplicar este comando me lista todos los tag creados en la actualidad-a > El flag -a indica que el tag será anotado-m > El flag -m permite añadir un mensaje descriptivo al tag.-d > El flag -d Permite borrar el tag escrito. Esto no altera los archivos solo etiquetaUn flag es una opción o parámetro que modifica el comportamiento de un comando
COMO PODER MOSTRAR LOS DETALLES DE UN TAG
git show > ayuda a mostrar el detalle de un commit o una etiqueta tag y a su vez combinaciones de ramas y archivos.COMO ALTERTAR Y CHEQUIAR CAMBIOS ANTES DE INTEGRARLOS EN EL MAIN
git checkout > cambiar de una rama o un commit especifico
Gracias por tu aporte.
Gracias
Duda profe, Que seria mas practico, Crear 1 Rama , jugar con ella y si no funciona Eliminarla , o Usar Git Checkout y hacer lo mismo ?
Jugar con una rama definitivamente, las ramas se vuelven tu patio de juegos para hacer todo lo que quieras y no padecer ninguna consecuencia! Jajajaja
Pues supongo que la novedad es que estas como "regresando en el tiempo" y puedes ir a experimentar varios commits atrás, tan atras como quieras. SI en el flujo actual (tu presente) solo creas una rama, estarías experimentando, haciendo y deshaciendo en el estado actual, con los archivos actuales.
Para hacer un git tag a un commit anterior, primero debes identificar el commit al que deseas etiquetar. Utiliza el comando git log para ver el historial de commits y encontrar el hash del commit que deseas etiquetar. Una vez que tengas el hash, puedes crear la etiqueta con el siguiente comando:
git tag -a nombre_de_la_etiqueta hash_del_commit -m "Mensaje de la etiqueta"
Esto crea un tag anotado que incluye un mensaje. Puedes ver tus tags con git tag y detalles de un tag específico con git show nombre_de_la_etiqueta.
Muchas gracias por el dato, justo estaba por preguntar eso.
Este es el poder de la comunidad #NuncaParesDeAprender 💚
que Heeramientas usa para crear esa infografia
Hola! dejo por aquí esto:
Si quieren subir sus etiquetas al Git Hub usen el siguiente comando:
`git push origin <nombre_de_la_etiqueta>``
Cambian el nombre de la etiqueta por la etiqueta que quiere subir.
Si quiern subir todas las etiquetas que tienen en su loca usen este comando:
git push origin --tags
Con eso tendrás sus etiquetas en Git Hub
Es normal. Al hacer git checkout a un commit específico, creas un estado temporal de tu proyecto. Si luego creas un archivo, como testing3, ese cambio permanece en el estado del directorio de trabajo. Cuando regresas a main, si no has realizado un commit de esos cambios, el archivo seguirá presente. Para evitar esto, asegúrate de realizar un commit antes de cambiar de rama, o utiliza git stash para guardar temporalmente esos cambios.
Exacto, si seguimos el ejemplo literalmente del vídeo. Al momento de regresar a Main, aunque no haya nuevas ramas y todo lo que explicó, si hay "modificaciones", en este caso, si hacemos un ls, veremos listado el archivo testing3. Quiere decir, que mientras estamos en el estado temporal, probando al final de la prueba ¿Hay que hacer un git commit? o ¿cuál sería la mejor práctica?, para al volver a main, no este estos archivos?
Yo hice la prueba de ir a un commit anterior, cree un archivo nuevo y modifique otro y al volver a main, los cambios seguía ahí pero fuera del stage. Me surgió la duda, de que hacer si los cambios fueran significativos y al eliminarlos manualmente dejara algo que no quiero. Investigué un poco y encontré los siguientes comandos: 1. git restore . -> descarta modificaciones en archivos rastreados 2. git clean -fd -> elimina archivos nuevos no rastreados. Los probé y funcionó, eliminaron todo lo que había tocado.
Es emocionante al principio no entendía nada pero con forme me fui a la practicar lo entendí mejor
Willian, el comando git tag -d elimina la etiqueta localmente, pero no la elimina automáticamente del repositorio remoto. Para eliminar un tag del repositorio remoto, necesitas usar git push origin --delete <nombre-del-tag>.
El profe Amin no lo menciona, pero si tienes archivos locales, es decir, que no han llegado a staging, y realizas un checkout, esos archivos podrían irse contigo de una rama a otra sin que te des cuenta. Como recomendación, antes de hacer algún checkout es bueno revisar qué tienes en tu código y así no llevarte un archivo o una sección de código que no deseas.
la musica al final es tremendatemene distractora de lo que está diciendo el profe..
No, no puedes agregar el mismo tag a más de un commit en Git. Cada tag debe ser único y, si intentas agregar el mismo nombre a otro commit, recibirás un error. Sin embargo, puedes eliminar un tag existente con git tag -d <tagname> y luego volver a crearlo en un nuevo commit si es necesario. Recuerda que los tags son útiles para marcar hitos específicos en el historial de tu proyecto.
hola profe si al regresar a la rama main, se supone que nada sucedio, porque cuando regrese a la rama main, y hago un ls me aparece el archivo testing3.txt, y si hago un git status el archivo "testing3.txt" me aparece con untracked
creo que me paso similar en las primeras clases ya que habia creado el archivo y sin querer se me fue una letra, entonces quedo en "testing.txtq", probablemente cuando hiciste algun cambio usando nano, le actualizaste el nombre (y se genero un archivo nuevo ademas del anterior que ya estabas trabajando)
dijo que no hubo ningún cambio en el historial de commits pero no dijo que los cambios quedan en el Working Directory
💡 Idea 11 Navegar por el historial garantiza la integridad de tu trabajo actual.
💡 Idea 10 git checkout main es tu botón de retorno seguro al presente.
💡 Idea 9 Es el entorno ideal para simular cambios sobre una versión antigua.
💡 Idea 8 ⭐⭐⭐⭐⭐ Revisar el pasado con checkout permite hacer pruebas sin romper la rama principal.
Mi mente cuando pienso en repasar clases anteriores después de llegar a esta clase:
git revert clase3
git checkout -b "reestudiatodoclase3"
git add clase3
git commit clase3
git switch "estudiando1avez"
git merge "reestudiando"