Skip to content

Control de Versiones con GitActividades y Estrategias de Enseñanza

El control de versiones con Git requiere práctica activa porque los conceptos de historiales, ramas y fusiones se entienden mejor cuando los estudiantes experimentan los errores y soluciones en tiempo real. La manipulación directa de un repositorio ayuda a internalizar que Git no es solo una herramienta técnica, sino un sistema de organización colaborativa donde cada acción tiene consecuencias visibles en el proyecto.

3o de PreparatoriaTecnología4 actividades30 min60 min

Objetivos de Aprendizaje

  1. 1Demostrar el uso de comandos básicos de Git (init, add, commit, status, log) para gestionar un repositorio local.
  2. 2Analizar el historial de commits para identificar cambios específicos y la secuencia de desarrollo de un proyecto.
  3. 3Comparar el flujo de trabajo de desarrollo en una rama principal versus el desarrollo en ramas separadas.
  4. 4Crear y fusionar ramas de Git para integrar nuevas funcionalidades en un proyecto colaborativo.
  5. 5Evaluar y resolver conflictos de fusión básicos que surgen al combinar ramas con cambios divergentes.

¿Quieres un plan de clase completo con estos objetivos? Generar una Misión

Taller Inicial: Configuración de Repositorio

Guía a los estudiantes para instalar Git, crear un repositorio local e inicializarlo con git init. Realizan commits iniciales con mensajes descriptivos y clonan el repositorio a sus máquinas. Finalmente, verifican el historial con git log.

Preparación y detalles

¿Cómo Git permite el trabajo colaborativo sin sobrescribir el código de otros desarrolladores?

Consejo de Facilitación: En el Taller Inicial, guíe a los estudiantes paso a paso en la configuración de Git en sus máquinas para evitar frustraciones técnicas tempranas que bloqueen el aprendizaje del concepto.

Setup: Grupos en mesas con materiales del problema

Materials: Paquete del problema, Tarjetas de rol (facilitador, secretario, controlador de tiempo, relator), Hoja del protocolo de resolución de problemas, Rúbrica de evaluación de solución

AplicarAnalizarEvaluarCrearHabilidades de RelaciónToma de DecisionesAutogestión
45 min·Grupos pequeños

Práctica Colaborativa: Ramas y Fusiones

En grupos, crean una rama feature para agregar una función simple a un proyecto compartido en GitHub. Fusionan la rama a main con pull request y discuten diferencias. Repiten con otra rama para comparar flujos.

Preparación y detalles

¿De qué manera las ramas facilitan el desarrollo de nuevas funcionalidades de forma aislada?

Consejo de Facilitación: Durante la Práctica Colaborativa, asigne roles específicos (por ejemplo, uno crea la rama y otro hace el merge) para que todos participen activamente en el proceso de fusión.

Setup: Grupos en mesas con materiales del problema

Materials: Paquete del problema, Tarjetas de rol (facilitador, secretario, controlador de tiempo, relator), Hoja del protocolo de resolución de problemas, Rúbrica de evaluación de solución

AplicarAnalizarEvaluarCrearHabilidades de RelaciónToma de DecisionesAutogestión
40 min·Grupos pequeños

Juego de Simulación: Resolución de Conflictos

Dos subgrupos editan el mismo archivo en ramas separadas, luego intentan merge para generar un conflicto intencional. Usan git status y editores para resolverlo manualmente, commit y push. Debrief como clase.

Preparación y detalles

¿Por qué el historial de versiones es crucial para la depuración y el mantenimiento del software?

Consejo de Facilitación: En la Simulación de Resolución de Conflictos, entregue archivos con cambios deliberados en las mismas líneas para que los estudiantes practiquen la comparación visual y la edición manual, no solo la teoría.

Setup: Espacio flexible para estaciones de grupo

Materials: Tarjetas de rol con metas/recursos, Moneda de juego o fichas, Marcador de rondas

AplicarAnalizarEvaluarCrearConciencia SocialToma de Decisiones
60 min·Grupos pequeños

Proyecto Final: Desarrollo en Equipo

Asigna un proyecto web simple; cada estudiante crea rama personal, agrega código y abre pull requests. Revisa y mergea como equipo, usando issues para rastrear tareas. Presenta el historial final.

Preparación y detalles

¿Cómo Git permite el trabajo colaborativo sin sobrescribir el código de otros desarrolladores?

Consejo de Facilitación: En el Proyecto Final, establezca una lista de verificación clara con criterios de evaluación para que los equipos autoevalúen su progreso en ramas, commits y trabajo colaborativo.

Setup: Grupos en mesas con materiales del problema

Materials: Paquete del problema, Tarjetas de rol (facilitador, secretario, controlador de tiempo, relator), Hoja del protocolo de resolución de problemas, Rúbrica de evaluación de solución

AplicarAnalizarEvaluarCrearHabilidades de RelaciónToma de DecisionesAutogestión

Enseñando Este Tema

Enseñar Git requiere un enfoque basado en problemas reales, donde los estudiantes enfrenten errores comunes y aprendan a diagnosticarlos. Evite explicar todos los comandos antes de usarlos; en su lugar, introduzca los conceptos justo antes de que sean necesarios en la actividad. La investigación muestra que los estudiantes retienen mejor cuando el error precede a la solución, no al revés. Use analogías tangibles, como comparar las ramas con notas adhesivas en un borrador de documento, para hacer el concepto más accesible.

Qué Esperar

Al finalizar las actividades, los estudiantes deben configurar repositorios, crear ramas, realizar commits significativos y resolver conflictos de manera autónoma. La evidencia de aprendizaje incluye repositorios funcionales, respuestas claras en ejercicios de simulación y explicaciones coherentes sobre el propósito de cada comando usado.

Estas actividades son un punto de partida. La misión completa es la experiencia.

  • Guion completo de facilitación con diálogos del docente
  • Materiales imprimibles para el alumno, listos para la clase
  • Estrategias de diferenciación para cada tipo de estudiante
Generar una Misión

Cuidado con estas ideas erróneas

Idea errónea comúnDurante el Taller Inicial, observe si los estudiantes creen que Git solo guarda copias completas de archivos en diferentes momentos.

Qué enseñar en su lugar

Durante el Taller Inicial, pida a los estudiantes que revisen el historial con git log --oneline y señalen diferencias específicas entre commits, destacando que Git rastrea cambios línea por línea y no versiones completas duplicadas.

Idea errónea comúnDurante la Práctica Colaborativa, escuche si los estudiantes mencionan que las ramas duplican todo el proyecto y consumen mucho espacio.

Qué enseñar en su lugar

Durante la Práctica Colaborativa, muestre el comando git branch -v para demostrar que las ramas son apuntadores ligeros al mismo historial y compare el tamaño del repositorio antes y después de crear múltiples ramas.

Idea errónea comúnDurante la Simulación de Resolución de Conflictos, identifique si los estudiantes asumen que merge siempre sobrescribe el código del otro desarrollador.

Qué enseñar en su lugar

Durante la Simulación de Resolución de Conflictos, entregue un archivo con conflictos reales y pida a los estudiantes que usen git diff para analizar las diferencias antes de resolverlas manualmente, destacando que el merge integra cambios sin sobrescribir automáticamente.

Ideas de Evaluación

Boleto de Salida

Después del Taller Inicial, entregue a cada estudiante un escenario: 'Has añadido una nueva función a tu proyecto en una rama llamada 'feature-login' y tu compañero ha corregido un error en la rama 'main'. ¿Qué comando usarías para traer los cambios de 'main' a tu rama 'feature-login' y por qué?'.

Evaluación entre Pares

Durante la Práctica Colaborativa, en parejas, un estudiante simula hacer un commit y el otro intenta hacer un commit diferente en el mismo archivo. El primer estudiante debe explicar cómo resolvería el conflicto resultante usando comandos de Git. El segundo estudiante evalúa si la explicación es clara y si los pasos propuestos son correctos.

Verificación Rápida

Después de la Simulación de Resolución de Conflictos, muestre en pantalla un log de Git simplificado con varios commits y ramas. Pregunte: '¿Cuál commit representa el último cambio estable en la rama 'main'?' o '¿Qué rama creen que contiene el desarrollo más reciente de la nueva característica?'.

Extensiones y Apoyo

  • Challenge: Pida a los estudiantes que creen una nueva rama a partir de un commit antiguo (usando git checkout -b) para demostrar cómo Git permite retroceder en el tiempo sin perder el historial actual.
  • Scaffolding: Proporcione una hoja de comandos básicos con ejemplos para estudiantes que se sientan abrumados por la sintaxis, especialmente durante el Taller Inicial.
  • Deeper: Invite a los estudiantes a investigar el comando git rebase y su diferencia con git merge, aplicándolo en un repositorio personal para entender sus ventajas y riesgos.

Vocabulario Clave

Repositorio (Repository)Una carpeta o directorio que Git rastrea y gestiona. Contiene todos los archivos del proyecto y su historial de cambios.
CommitUna instantánea guardada de los cambios realizados en los archivos del proyecto en un momento específico. Cada commit tiene un identificador único y un mensaje descriptivo.
Rama (Branch)Una línea de desarrollo independiente dentro de un repositorio. Permite trabajar en nuevas características o correcciones sin afectar la línea principal de desarrollo.
Fusión (Merge)El proceso de combinar los cambios de una rama en otra. Git intenta integrar automáticamente los cambios, pero puede requerir intervención manual si hay conflictos.
Conflicto (Conflict)Ocurre cuando Git no puede fusionar automáticamente los cambios de dos ramas porque ambas modificaron la misma parte de un archivo de manera diferente.

¿Listo para enseñar Control de Versiones con Git?

Genera una misión completa con todo lo que necesitas

Generar una Misión