Fundamentos de Control de Versiones

Propósito de la unidad

Comprender el uso del control de versiones para gestionar cambios en proyectos de software, organizar repositorios locales y documentar correctamente el progreso mediante commits.


1. Concepto de control de versiones

El control de versiones es un sistema que permite registrar los cambios realizados en archivos a lo largo del tiempo, facilitando:

  • Recuperar versiones anteriores
  • Comparar cambios
  • Trabajar en equipo
  • Mantener un historial del proyecto

El sistema de control de versiones más utilizado actualmente es Git.

Definición

Control de versiones
Sistema que registra y administra cambios en archivos, permitiendo rastrear su evolución.

2. Repositorio local

Un repositorio local es un espacio en tu computadora donde se almacena el historial completo del proyecto.

Características:

  • No requiere conexión a internet
  • Guarda todos los cambios (commits)
  • Permite trabajar de forma independiente

Ejemplo de creación

git init

Esto crea una carpeta oculta llamada .git, donde se guarda toda la información del repositorio.


3. Estructura de un proyecto versionado

Un proyecto organizado debe tener una estructura clara:

mi_proyecto/
│
├── src/              # Código fuente
├── docs/             # Documentación
├── README.md         # Descripción del proyecto
├── .gitignore        # Archivos a ignorar
└── main.py           # Archivo principal

Archivos importantes

README.md
Describe el proyecto, uso e instrucciones.
.gitignore
Define qué archivos no deben ser versionados (ej: temporales).

Evita subir archivos innecesarios como:

  • Archivos temporales
  • Dependencias pesadas
  • Archivos del sistema

4. Commits y mensajes técnicos adecuados

Un commit es un registro de cambios en el repositorio.

Estructura de un commit

git add .
git commit -m "Mensaje del cambio"

Buenas prácticas para mensajes

  • Claros y específicos
  • En presente
  • Técnicos y breves

Ejemplos correctos

  • "Agrega función de cálculo de promedio"
  • "Corrige error en validación de entrada"
  • "Implementa menú principal"

Ejemplos incorrectos

  • "Cambios"
  • "Arreglos varios"
  • "asdf"

Un mal mensaje de commit dificulta el seguimiento del proyecto.


5. Flujo básico de trabajo

flowchart LR
A[Modificar archivos] --> B[git add]
B --> C[git commit]
C --> D[Historial actualizado]

6. Práctica guiada

Actividades

Objetivo

Crear un repositorio local y registrar cambios progresivos mediante commits.

Instrucciones

  1. Crear una carpeta para el proyecto
  2. Inicializar repositorio
  3. Crear archivos básicos
  4. Realizar cambios progresivos
  5. Registrar mínimo 3 commits

Desarrollo paso a paso

Paso 1: Crear proyecto

mkdir mi_proyecto
cd mi_proyecto
git init

Paso 2: Crear archivo inicial

echo "# Mi Proyecto" > README.md
git add README.md
git commit -m "Inicializa proyecto con README"

Paso 3: Crear archivo principal

echo "print('Hola mundo')" > main.py
git add .
git commit -m "Agrega archivo principal con mensaje inicial"

Paso 4: Modificar código

Editar main.py:

print("Hola mundo")
print("Versión 2")
git add .
git commit -m "Agrega segunda línea de salida"

Paso 5: Agregar funcionalidad

nombre = input("Ingresa tu nombre: ")
print("Hola", nombre)
git add .
git commit -m "Agrega entrada de usuario"

Paso 6: Documentar proyecto

Editar README.md

git add README.md
git commit -m "Actualiza documentación del proyecto"

7. Lista de verificación

  • Se creó el repositorio con git init
  • Se creó estructura de archivos
  • Se realizaron al menos 3 commits
  • Los mensajes son claros y técnicos
  • Se documentó el proyecto en README