Phase 00 - Lesson 02

Git y Colaboración

El control de versiones no es opcional. Cada experimento, cada modelo, cada lección que construyes aquí queda registrado.

Tipo: Learn Lenguajes: -- Prerrequisitos: Fase 0, Lección 01 Tiempo: ~30 minutos

Objetivos de Aprendizaje

  • Configurar la identidad de git y usar el flujo diario de add, commit y push
  • Crear y fusionar ramas para experimentos aislados sin romper la main
  • Escribir un .gitignore que excluya checkpoints de modelos y archivos binarios grandes
  • Navegar por el historial de commits con git log para comprender la evolución del proyecto

El Problema

Estás a punto de escribir cientos de archivos de código a lo largo de 20 fases. Sin control de versiones perderás trabajo, romperás cosas que no podrás deshacer y no tendrás forma de colaborar con otros.

Git es la herramienta. GitHub es donde vive el código. Esta lección cubre lo que necesitas para este curso y nada más.

El Concepto

sequenceDiagram
    participant WD as Working Directory
    participant SA as Staging Area
    participant LR as Local Repo
    participant R as Remote (GitHub)
    WD->>SA: git add
    SA->>LR: git commit
    LR->>R: git push
    R->>LR: git fetch
    LR->>WD: git pull

Tres cosas para recordar:

  1. Guarda con frecuencia (git commit)
  2. Envía al remoto (git push)
  3. Usa ramas para experimentos (git checkout -b experiment)

Build It

Paso 1: Configurar git

git config --global user.name "Your Name"
git config --global user.email "you@example.com"

Paso 2: El flujo diario

git status
git add file.py
git commit -m "Add perceptron implementation"
git push origin main

Paso 3: Ramas para experimentos

git checkout -b experiment/new-optimizer

# ... make changes, commit ...

git checkout main
git merge experiment/new-optimizer

Paso 4: Trabajando con el repositorio de este curso

git clone https://ai-engineering.academy
cd ai-engineering-from-scratch

git checkout -b my-progress
# work through lessons, commit your code
git push origin my-progress

Use It

Para este curso, necesitas exactamente estos comandos:

Comando Cuándo
git clone Obtener el repositorio del curso
git add + git commit Guardar tu trabajo
git push Respaldarlo en GitHub
git checkout -b Probar algo sin romper la main
git log --oneline Ver lo que has hecho

Eso es todo. No necesitas rebase, cherry-pick ni submodules para este curso.

Ejercicios

  1. Clona este repositorio, crea una rama llamada my-progress, crea un archivo, haz commit y haz push
  2. Crea un .gitignore que excluya los archivos de checkpoint de modelos (.pt, .pth, .safetensors)
  3. Mira el historial de commits de este repositorio con git log --oneline y lee cómo se agregaron las lecciones

Términos Clave

Término Lo que dice la gente Lo que realmente significa
Commit "Guardar" Una instantánea de todo tu proyecto en un punto en el tiempo
Branch "Una copia" Un puntero a un commit que avanza a medida que trabajas
Merge "Combinar código" Tomar cambios de una rama y aplicarlos en otra
Remote "La nube" Una copia de tu repositorio alojada en otro lugar (GitHub, GitLab)
0 lifetime access. Curriculum based on AI Engineering from Scratch by Rohit Ghumare (MIT, used under attribution).