Skip to content

Introducción a Control de Versiones (Git)Actividades y Estrategias de Enseñanza

El control de versiones con Git requiere práctica directa para internalizar conceptos abstractos como historiales de cambios y ramas. Los estudiantes aprenden mejor cuando trabajan en contextos reales donde cometen errores, los corrigen y ven resultados inmediatos.

1o de PreparatoriaTecnología4 actividades25 min45 min

Objetivos de Aprendizaje

  1. 1Identificar los comandos básicos de Git (init, add, commit, push, pull, clone) para gestionar un repositorio local y remoto.
  2. 2Comparar el flujo de trabajo de Git utilizando ramas (branches) para el desarrollo paralelo y la integración de funcionalidades.
  3. 3Explicar la importancia del control de versiones para rastrear el historial de cambios y revertir a versiones anteriores ante errores.
  4. 4Demostrar cómo colaborar con otros desarrolladores utilizando un repositorio remoto como GitHub o GitLab.
  5. 5Analizar el historial de un proyecto para identificar cuándo y por qué se introdujeron cambios específicos.

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

25 min·Parejas

Enseñanza entre Pares: Inicializar y Primer Commit

Cada par crea un repositorio local con git init, agrega un archivo README.md con git add, realiza el primer commit y verifica el historial con git log. Luego, simulan un cambio erróneo y lo revierten con git checkout. Discutan ventajas observadas.

Preparación y detalles

¿Cómo facilita Git la colaboración entre múltiples desarrolladores en un mismo proyecto?

Consejo de Facilitación: Durante la actividad en pares, circula y pide a cada estudiante que explique oralmente los pasos que realiza antes de ejecutar cada comando para reforzar el lenguaje técnico.

Setup: Área de presentación al frente, o múltiples estaciones de enseñanza

Materials: Tarjetas de asignación de temas, Plantilla de planificación de lección, Formulario de retroalimentación entre pares, Materiales para apoyo visual

ComprenderAplicarAnalizarCrearAutogestiónHabilidades de Relación
45 min·Grupos pequeños

Grupos Pequeños: Ramas y Merges

En grupos de 4, clonan un repositorio compartido, crean branches individuales con git branch y git checkout, editan código y hacen push. Finalmente, mergean en la rama main resolviendo conflictos simples. Registren el proceso en un diagrama.

Preparación y detalles

¿Qué ventajas ofrece el control de versiones para la recuperación de errores y la gestión de cambios?

Consejo de Facilitación: En grupos pequeños, asigna roles rotativos (ej. quien hace el merge, quien resuelve conflictos) para que todos participen activamente en la gestión de ramas.

Setup: Salón estándar: flexible para actividades grupales durante la clase

Materials: Contenido previo a la clase (video/lectura con preguntas guía), Verificación de preparación o boleto de entrada, Actividad de aplicación en clase, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia
35 min·Toda la clase

Clase Completa: Colaboración en GitHub

Proyecta un repositorio clase en GitHub. Todos clonan, proponen cambios vía pull requests y aprueban merges en vivo. Observen notificaciones y discutan cómo Git rastrea contribuciones múltiples.

Preparación y detalles

¿De qué manera Git permite experimentar con nuevas funcionalidades sin afectar la versión principal del software?

Consejo de Facilitación: En la clase completa, muestra en pantalla el historial de GitHub en tiempo real para que los estudiantes vean cómo sus aportes se integran al proyecto compartido.

Setup: Salón estándar: flexible para actividades grupales durante la clase

Materials: Contenido previo a la clase (video/lectura con preguntas guía), Verificación de preparación o boleto de entrada, Actividad de aplicación en clase, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia
30 min·Individual

Individual: Explorar Historial Remoto

Cada estudiante clona un repositorio público, explora git log --oneline --graph y crea un branch para experimentar. Sube cambios a un fork personal y compara con el original.

Preparación y detalles

¿Cómo facilita Git la colaboración entre múltiples desarrolladores en un mismo proyecto?

Setup: Salón estándar: flexible para actividades grupales durante la clase

Materials: Contenido previo a la clase (video/lectura con preguntas guía), Verificación de preparación o boleto de entrada, Actividad de aplicación en clase, Diario de reflexión

ComprenderAplicarAnalizarAutogestiónAutoconciencia

Enseñando Este Tema

Los profesores experimentados enseñan Git comenzando con la línea de comandos para evitar depender de interfaces gráficas que esconden el proceso real. Se enfocan en la metáfora de 'fotografías del proyecto' para explicar commits, y usan conflictos como oportunidades de aprendizaje colaborativo en lugar de errores frustrantes. La repetición de workflows básicos (init, add, commit, push) construye hábitos que luego se adaptan a casos más complejos.

Qué Esperar

Los estudiantes demuestran dominio al inicializar repositorios correctamente, realizar commits significativos con mensajes descriptivos y resolver merges sin conflictos innecesarios. El trabajo colaborativo muestra responsabilidad al compartir cambios y revisar el código de otros.

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 Inicializar y Primer Commit, algunos estudiantes pueden pensar que cada commit guarda una copia completa del proyecto.

Qué enseñar en su lugar

Durante la actividad en pares, pide a los estudiantes que abran su repositorio local con `ls -la` para mostrar que solo hay archivos modificados y el directorio .git, demostrando que Git rastrea diferencias.

Idea errónea comúnDurante Ramas y Merges, los estudiantes suelen creer que las branches duplican todo el código.

Qué enseñar en su lugar

Durante la actividad en grupos pequeños, pide que visualicen el grafo de commits con `git log --graph --oneline` para ver que las ramas son punteros ligeros al historial compartido.

Idea errónea comúnDurante Colaboración en GitHub, algunos piensan que los conflictos son inevitables en cualquier merge.

Qué enseñar en su lugar

Durante la clase completa, simula un escenario donde los estudiantes coordinan cambios en la misma línea usando ramas y mensajes de commit descriptivos antes del merge, mostrando que los conflictos se pueden prevenir.

Ideas de Evaluación

Boleto de Salida

Después de Inicializar y Primer Commit, entrega tarjetas con el escenario: 'Necesitas añadir una nueva funcionalidad sin interrumpir el trabajo actual'. Los estudiantes escriben el comando exacto que usarían primero y su justificación técnica.

Verificación Rápida

Durante Ramas y Merges, muestra una secuencia de comandos como `git branch feature-nueva`, `git checkout feature-nueva`, `git add archivo.txt`. Pregunta qué acción realiza cada comando y cuál sería el siguiente paso lógico para guardar el cambio.

Evaluación entre Pares

Después de Colaboración en GitHub, los estudiantes en parejas evalúan mutuamente si su compañero siguió los pasos correctamente: clonar, crear rama, hacer commit y merge sin conflictos. Cada uno califica con 'Sí' o 'No' y explica una mejora.

Extensiones y Apoyo

  • Desafío: Pide a estudiantes avanzados que simulen un proyecto con 3 desarrolladores en GitHub, creando ramas específicas para bugs, features y hotfixes.
  • Apoyo: Para estudiantes que luchan, proporciona una lista de comandos preescritos en tarjetas que deben ordenar antes de ejecutarlos, reduciendo la carga cognitiva.
  • Profundización: Invita a explorar los archivos ocultos del repositorio (.git) para entender cómo Git almacena información internamente usando herramientas como `git cat-file` o editores hexadecimales.

Vocabulario Clave

Control de VersionesSistema que registra los cambios realizados en un archivo o conjunto de archivos a lo largo del tiempo, permitiendo recuperar versiones específicas.
Repositorio (Repo)Directorio que contiene todos los archivos de un proyecto y su historial completo de revisiones. Puede ser local o remoto.
CommitUna instantánea guardada de los cambios en el 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 funcionalidades o correcciones sin afectar la línea principal (master/main).
MergeProceso de combinar los cambios de una rama en otra. Se utiliza para integrar funcionalidades desarrolladas en ramas separadas a la rama principal.
Clonar (Clone)Crear una copia local completa de un repositorio remoto en tu máquina. Incluye todo el historial de versiones.

¿Listo para enseñar Introducción a Control de Versiones (Git)?

Genera una misión completa con todo lo que necesitas

Generar una Misión