Ir al contenido
Tecnología · 1o de Preparatoria · Desarrollo de Software y Lenguajes de Programación · II Bimestre

Introducción a Control de Versiones (Git)

Los estudiantes exploran los fundamentos del control de versiones con Git para gestionar cambios en el código y colaborar.

Aprendizajes Esperados SEPSEP EMS: Desarrollo de SoftwareSEP EMS: Colaboración Digital

Acerca de este tema

El control de versiones con Git introduce a los estudiantes en la gestión eficiente de cambios en el código fuente, esencial para el desarrollo de software colaborativo. Aprenden comandos básicos como git init para crear un repositorio, git add y git commit para registrar modificaciones, y git push para compartir con remotos como GitHub. Este enfoque permite rastrear el historial completo del proyecto, revertir errores y trabajar en equipo sin sobrescribir el código ajeno.

En el plan SEP de Preparatoria, este tema fortalece el eje de Desarrollo de Software y Colaboración Digital del segundo bimestre. Responde preguntas clave: Git facilita la colaboración mediante branches que permiten experimentación paralela sin afectar la rama principal; ofrece recuperación de errores vía logs y checkouts; y promueve la gestión de cambios con merges controlados. Así, los estudiantes desarrollan habilidades prácticas para proyectos reales.

El aprendizaje activo beneficia este tema porque los comandos de Git se interiorizan mejor mediante práctica inmediata en terminales. Cuando los estudiantes clonan repositorios reales, crean branches y resuelven merges en grupo, comprenden conceptos abstractos como el flujo de trabajo distribuido, lo que aumenta la retención y la confianza para aplicar Git en portafolios futuros.

Preguntas Clave

  1. ¿Cómo facilita Git la colaboración entre múltiples desarrolladores en un mismo proyecto?
  2. ¿Qué ventajas ofrece el control de versiones para la recuperación de errores y la gestión de cambios?
  3. ¿De qué manera Git permite experimentar con nuevas funcionalidades sin afectar la versión principal del software?

Objetivos de Aprendizaje

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

Antes de Empezar

Conceptos Básicos de Sistemas de Archivos y Carpetas

Por qué: Es fundamental que los estudiantes comprendan cómo se organizan y manipulan archivos y directorios en un sistema operativo para entender el concepto de repositorio.

Introducción a la Línea de Comandos (Terminal)

Por qué: Git se opera principalmente a través de la línea de comandos, por lo que la familiaridad con comandos básicos de navegación y manipulación es necesaria.

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.

Cuidado con estas ideas erróneas

Idea errónea comúnGit solo sirve como respaldo de archivos.

Qué enseñar en su lugar

Git rastrea cambios línea por línea en el código, no copia archivos completos. Actividades de commits secuenciales muestran cómo git log revela evoluciones precisas, ayudando a estudiantes a apreciar su rol en depuración colaborativa.

Idea errónea comúnLas branches son copias independientes del proyecto.

Qué enseñar en su lugar

Las branches son punteros ligeros al commit actual, compartiendo historial común. Prácticas de merge en grupos demuestran integración eficiente sin duplicados, corrigiendo esta idea mediante visualización de grafos.

Idea errónea comúnTodo merge genera conflictos inevitables.

Qué enseñar en su lugar

Los conflictos surgen solo en ediciones simultáneas de líneas idénticas. Simulaciones controladas en parejas enseñan a evitarlos con comunicación previa, fomentando hábitos colaborativos desde el inicio.

Ideas de aprendizaje activo

Ver todas las actividades

Conexiones con el Mundo Real

  • Los desarrolladores de videojuegos AAA como 'Cyberpunk 2077' utilizan Git para gestionar millones de líneas de código y activos, permitiendo que cientos de programadores y artistas colaboren simultáneamente en diferentes partes del juego.
  • Empresas de software como Google y Microsoft emplean Git extensivamente para el desarrollo de sus sistemas operativos y aplicaciones. Permite a miles de ingenieros trabajar en paralelo en actualizaciones y nuevas características, manteniendo la estabilidad del producto.
  • Los equipos de ciencia de datos en instituciones como el Instituto Nacional de Estadística y Geografía (INEGI) usan Git para versionar sus scripts de análisis y bases de datos. Esto asegura la reproducibilidad de los resultados y facilita la colaboración entre investigadores.

Ideas de Evaluación

Boleto de Salida

Entrega a cada estudiante una tarjeta con un escenario: 'Necesitas añadir una nueva funcionalidad sin interrumpir el trabajo actual'. Pide que escriban qué comando de Git usarían primero y por qué.

Verificación Rápida

Muestra una secuencia de comandos de Git (ej. `git init`, `git add .`, `git commit -m 'Initial commit'`). Pregunta a los estudiantes qué acción realiza cada comando y cuál sería el siguiente paso lógico para guardar un cambio.

Evaluación entre Pares

Los estudiantes trabajan en parejas para clonar un repositorio de ejemplo, crear una rama, hacer un commit y luego intentar hacer un merge. Cada estudiante evalúa si su compañero siguió los pasos correctamente y si el merge se realizó sin conflictos.

Preguntas frecuentes

¿Cómo facilita Git la colaboración en proyectos de software?
Git permite que múltiples desarrolladores trabajen en branches paralelas, hagan commits independientes y mergeen cambios vía pull requests en plataformas como GitHub. Esto evita sobrescrituras y mantiene un historial auditable. En clase, estudiantes ven cómo resuelve problemas reales de equipos distribuidos, alineado con estándares SEP de colaboración digital.
¿Cuáles son las ventajas del control de versiones para recuperar errores?
Con Git, los estudiantes usan git checkout o git revert para volver a commits previos sin perder historial. Esto fomenta experimentación segura. Actividades prácticas muestran cómo bisect ayuda a identificar fallos, preparando para depuración profesional en desarrollo de software.
¿Cómo ayuda el aprendizaje activo a entender Git?
El aprendizaje activo hace tangibles comandos abstractos: clonar repositorios en parejas, crear branches en grupos y merges en clase simulan flujos reales. Estas prácticas superan lecturas pasivas, ya que estudiantes resuelven problemas inmediatos como conflictos, reteniendo conceptos 70% más según estudios pedagógicos. Así, ganan confianza para proyectos SEP.
¿Qué comandos básicos debe dominar un principiante en Git?
Prioriza git init, add, commit, status, log, branch, checkout, push y pull. En secuencia: inicializa, agrega cambios, commitea, crea branches para pruebas y sincroniza con remotos. Actividades guiadas aseguran dominio progresivo, conectando con preguntas clave del programa SEP.