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
.gitignoreque excluya checkpoints de modelos y archivos binarios grandes - Navegar por el historial de commits con
git logpara 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:
- Guarda con frecuencia (
git commit) - Envía al remoto (
git push) - 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
- Clona este repositorio, crea una rama llamada
my-progress, crea un archivo, haz commit y haz push - Crea un
.gitignoreque excluya los archivos de checkpoint de modelos (.pt,.pth,.safetensors) - Mira el historial de commits de este repositorio con
git log --oneliney 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) |