Ejercicios
Ejercicios del Taller
Resumen de todos los ejercicios disponibles. Cada ejercicio pertenece a una clase del taller y puede ser un kahoot, un archivo descargable o un enlace externo.
Revisa el codigo de los ejercicios en
git-workshop-labs[ 26 ejercicios ]
Introduccion a VCS
Pon a prueba tus conocimientos sobre la historia y tipos de sistemas de control de versiones.
Configuracion de Git
Practica la configuracion inicial de Git: identidad, editor y comprobacion de ajustes.
Estados y Staging
Demuestra tu comprension de los estados de los archivos y el area de preparacion en Git.
Flujo basico: init, add y commit
Pon en practica los comandos fundamentales: git init, git add y git commit.
Deshacer, Alias y Remotos
Practica el deshacer cambios, configurar aliases y trabajar con repositorios remotos.
Fontanería y el modelo de objetos
Pon a prueba tus conocimientos sobre el funcionamiento interno de Git. El directorio .git, los objetos blob, tree y commit.
Construir un repo a mano
Crea blobs, trees y commits encadenados a mano con comandos de fontanería.
Referencias, HEAD y etiquetas
Crea ramas con git update-ref, mueve el HEAD con git symbolic-ref y etiqueta commits, entendiendo que son solo punteros a commits.
Packfiles y compresión de objetos
Pon a prueba tus conocimientos sobre packfiles: formato loose, git gc, delta compression y lectura de git verify-pack.
Recuperando commits perdidos
Pierde commits con git reset --hard y recupéralos con git reflog y git fsck, creando ramas que apunten a los commits perdidos.
Mantenimiento y limpieza del historial
Pon a prueba lo aprendido en toda la clase: git gc y packed-refs, recuperación de commits, eliminación de archivos grandes del historial y las variables de entorno más usadas.
Ramas, HEAD y bifurcación
Comprueba que entendiste que una rama es solo un puntero movible a commits: cómo funciona HEAD, qué hace git checkout y cómo leer un historial bifurcado.
Ramas y fusiones
Practica el flujo completo de ramificación y fusión: crea ramas, haz commits, fusiona con fast-forward, genera un merge commit y elimina ramas ya fusionadas.
Resolver conflictos
Fuerza un conflicto real entre dos ramas y resuélvelo: lee los marcadores, elige la versión correcta, confirma la fusión y gestiona las ramas resultantes.
Flujos de trabajo y Ramas Remotas
Pon a prueba tus conocimientos sobre ramas locales y remotas, ramas de largo recorrido y puntuales, la metafora de los silos y el comportamiento de origin al clonar y sincronizar repositorios en Git.
Ramas remotas
Practica la sincronizacion con ramas remotas: clona, observa el puntero origin/main, publica una rama nueva, configura el seguimiento, agrega un segundo remoto y elimina ramas remotas.
Rebase en accion
Practica la reorganizacion local de punta a punta: ramas divergentes, git rebase, fast-forward de la rama principal y el escenario server/client con git rebase --onto. El foco esta en leer el grafo en cada paso con el alias git lg (git log --oneline --graph --decorate).
Rebase: conceptos y peligros
Pon a prueba tu comprension de la reorganizacion en Git: como funciona el rebase por dentro, el resultado frente a un merge, los peligros de reorganizar trabajo ya publicado, el patch-id, git pull --rebase y cuando conviene (o no) rebasear.
Seleccion de revision
Pon a prueba tu manejo de las formas de referirse a commits: checksum SHA-1 corto, referencias de rama, el reflog como seleccion y la sintaxis de ancestros ^, ^^, ^2 y ~.
Rangos de commits
Practica los rangos de commits sobre un repo real: doble punto, multiples puntos con ^ y --not, triple punto y --left-right para identificar commits exactos y dejarlos marcados.
Organizacion interactiva
Prepara partes de archivos con el modo interactivo: el menu de git add -i (update, revert, diff) y la seleccion de hunks con git add -p para armar commits parciales.
Stash y limpieza
Guarda trabajo a medias con git stash y recuperalo con apply y drop, y limpia tu directorio de trabajo con git clean, incluyendo los archivos ignorados.
Busqueda en el historial
Busca en el working tree y en arboles antiguos con git grep (-n, --count, --and, --break, --heading) y en el historial con git log -S, -G y -L sobre un proyecto de infraestructura Terraform.
Reescribiendo la historia
Reescribe la historia local de un repo de testing en Python: corrige el ultimo commit con git commit --amend y el editor, y usa el rebase interactivo con reword, squash, drop y edit para corregir, combinar, eliminar y dividir commits.
Reset: los tres arboles y los tres modos
Pon a prueba tus conocimientos sobre los conceptos fundamentales de Git. Este quiz explora los tres arboles (Directorio de trabajo, Indice y HEAD) y como el comando 'git reset' interactua con ellos en sus diferentes modos: --soft, --mixed y --hard.
Reset en accion
Practica los tres modos de git reset (--soft, --mixed y --hard) sobre un script de backup en Bash, observando como cada modo afecta a los tres arboles (HEAD, indice y directorio de trabajo), y el squash de commits con reset --soft.