Ir al contenido
Tecnología · 3o de Preparatoria · Desarrollo de Aplicaciones y Arquitectura de Software · II Bimestre

Control de Versiones con Git

Los estudiantes aprenden a utilizar Git para el control de versiones, gestionando ramas, fusiones y resolviendo conflictos en proyectos colaborativos.

Aprendizajes Esperados SEPSEP EMS: Gestión de Proyectos TecnológicosSEP EMS: Herramientas de Desarrollo

Acerca de este tema

El control de versiones con Git permite a los estudiantes gestionar cambios en proyectos de software de forma colaborativa y segura. Inicializan repositorios, realizan commits para registrar modificaciones, crean ramas para desarrollar nuevas funcionalidades de manera aislada, fusionan cambios con merge y resuelven conflictos cuando surgen discrepancias. Esto responde a las preguntas clave del currículo: Git previene sobrescrituras mediante historiales individuales por rama; las ramas facilitan pruebas sin riesgos en la rama principal; el historial es esencial para depurar errores y mantener software.

En el plan SEP de Preparatoria, este tema integra Gestión de Proyectos Tecnológicos y Herramientas de Desarrollo del segundo bimestre en Desarrollo de Aplicaciones y Arquitectura de Software. Los estudiantes aplican conceptos reales del desarrollo profesional, como el flujo de trabajo en equipos remotos, y fortalecen habilidades de colaboración y resolución de problemas complejos.

El aprendizaje activo beneficia este tema porque las prácticas con repositorios reales convierten procesos abstractos en experiencias tangibles. Al trabajar en parejas o grupos con GitHub, los estudiantes experimentan fusiones y conflictos en tiempo real, lo que profundiza la comprensión y prepara para escenarios laborales auténticos.

Preguntas Clave

  1. ¿Cómo Git permite el trabajo colaborativo sin sobrescribir el código de otros desarrolladores?
  2. ¿De qué manera las ramas facilitan el desarrollo de nuevas funcionalidades de forma aislada?
  3. ¿Por qué el historial de versiones es crucial para la depuración y el mantenimiento del software?

Objetivos de Aprendizaje

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

Antes de Empezar

Organización de Archivos y Carpetas

Por qué: Los estudiantes necesitan saber cómo estructurar y nombrar archivos y directorios para poder aplicar estos conceptos en un entorno de control de versiones.

Conceptos Básicos de Programación

Por qué: Es fundamental que los estudiantes comprendan qué es el código fuente y cómo se modifica para poder apreciar la importancia de rastrear esos cambios.

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.

Cuidado con estas ideas erróneas

Idea errónea comúnGit solo sirve para hacer copias de seguridad de archivos.

Qué enseñar en su lugar

Git rastrea cambios línea por línea en el historial, no solo respalda versiones completas. Actividades de commits secuenciales ayudan a los estudiantes visualizar evoluciones específicas, mientras que revertir cambios en práctica aclara su rol en depuración real.

Idea errónea comúnLas ramas duplican todo el proyecto y ocupan mucho espacio.

Qué enseñar en su lugar

Las ramas en Git son referencias ligeras al historial compartido, sin duplicados pesados. Prácticas de branching rápido en talleres muestran su eficiencia, y merges colaborativos demuestran cómo mantienen el proyecto unificado sin desperdicio.

Idea errónea comúnMerge siempre sobrescribe el código del otro desarrollador.

Qué enseñar en su lugar

Merge integra cambios inteligentemente, pidiendo resolución manual en conflictos. Simulaciones grupales de conflictos enseñan a leer diffs y combinar ediciones, fomentando discusión que corrige ideas erróneas sobre sobrescritura automática.

Ideas de aprendizaje activo

Ver todas las actividades

Conexiones con el Mundo Real

  • Los desarrolladores de software en empresas como Google o Microsoft utilizan Git diariamente para colaborar en proyectos masivos como el sistema operativo Android o Windows. Permite a miles de ingenieros trabajar simultáneamente en diferentes partes del código sin interferir entre sí.
  • Los equipos de desarrollo de videojuegos, como los de Riot Games con League of Legends, emplean Git para gestionar las miles de actualizaciones y nuevas características que lanzan periódicamente. Las ramas son cruciales para probar nuevas mecánicas de juego o balanceos sin afectar la experiencia de los jugadores actuales.
  • Los científicos de datos en instituciones de investigación, como el CERN, usan Git para controlar las versiones de sus scripts de análisis y modelos. Esto asegura la reproducibilidad de los experimentos y facilita la colaboración entre investigadores que trabajan con grandes volúmenes de datos.

Ideas de Evaluación

Boleto de Salida

Entregue a cada estudiante una tarjeta con un escenario simple: 'Has añadido una nueva función a tu proyecto en una rama llamada 'feature-x', 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-x' y por qué?'

Evaluación entre Pares

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 utilizando 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

Muestre en pantalla un log de Git simplificado con varios commits y ramas. Pregunte a los estudiantes: '¿Cuál commit representa el último cambio estable?' o '¿Qué rama creen que contiene el desarrollo más reciente de una nueva característica?'

Preguntas frecuentes

¿Cómo Git permite el trabajo colaborativo sin sobrescribir código?
Git usa ramas y commits para registrar cambios individuales sin interferir en el trabajo ajeno. Cada desarrollador trabaja en su rama, y las fusiones integran contribuciones vía pull requests. Esto asegura trazabilidad total, ideal para equipos en SEP proyectos tecnológicos, donde el historial permite revisiones seguras y reversión de errores comunes en colaboración remota.
¿De qué manera las ramas facilitan el desarrollo aislado?
Las ramas permiten crear entornos independientes para probar funcionalidades nuevas sin afectar la versión estable. Comandos como git checkout -b crean ramas instantáneas, y merges las incorporan cuando están listas. En clase, esto fomenta experimentación segura, alineada con estándares SEP de herramientas de desarrollo para arquitectura de software.
¿Cómo el aprendizaje activo ayuda a entender Git?
Actividades prácticas como crear repositorios reales y resolver conflictos en grupos convierten comandos abstractos en experiencias concretas. Los estudiantes ven impactos inmediatos de commits y merges, lo que refuerza retención por encima de lecturas pasivas. Colaboración en GitHub simula entornos laborales, desarrollando confianza y habilidades de resolución de problemas en contexto auténtico.
¿Por qué el historial de versiones es crucial para depuración?
El historial git log y git blame permiten identificar cuándo y quién hizo cambios problemáticos, facilitando fixes precisos. Revertir con git revert o bisect acelera depuración en proyectos grandes. En Preparatoria, prácticas con logs reales enseñan mantenimiento sostenible, clave para estándares SEP en gestión de proyectos tecnológicos colaborativos.