Sincronizar tu Fork¶
IMPORTANTE
Tu fork NO se actualiza automaticamente. Debes sincronizarlo manualmente para obtener los ejercicios nuevos que el profesor agregue.
Sistema de Evaluacion
Ya NO se usan Pull Requests. El sistema evalua tu PROMPTS.md directamente en tu fork. Ver la Guia de Entregas para mas detalles.
El Problema¶
Cuando haces fork, obtienes una copia en ese momento. Durante el curso agregare ejercicios nuevos, pero tu fork NO se actualiza solo.
%%{init: {'theme':'base'}}%%
flowchart TB
subgraph S1["SEMANA 1 - Hiciste Fork"]
direction LR
Prof1["Repo Profesor<br/>[01] [02]"]
Fork1["Tu Fork<br/>[01] [02]"]
Prof1 -.->|Fork| Fork1
end
subgraph S3["SEMANA 3 - Profesor agrego ejercicios"]
direction LR
Prof3["Repo Profesor<br/>[01] [02] [03] [04] [05]"]
Fork3["Tu Fork<br/>[01] [02]<br/>Te faltan [03] [04] [05]"]
end
S1 --> S3
style S1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style S3 fill:#ffebee,stroke:#c62828,stroke-width:2px
style Prof1 fill:#e1f5ff,stroke:#0277bd,stroke-width:2px
style Fork1 fill:#c8e6c9,stroke:#2e7d32,stroke-width:2px
style Prof3 fill:#e1f5ff,stroke:#0277bd,stroke-width:2px
style Fork3 fill:#ffcdd2,stroke:#d32f2f,stroke-width:3px https://github.com/TU_USUARIO/ejercicios-bigdata **Paso 2:** Buscar el banner de sincronizacion
Cuando hay cambios nuevos, veras un banner así:
!!! example "Banner en GitHub"
```
⚠️ This branch is 15 commits behind TodoEconometria:main
[Sync fork ▼] ← CLICK AQUI
```
**Paso 3:** Click en "Sync fork" → "Update branch"
!!! example "Opciones de sincronización"
**Sync fork**
This will update your branch with the latest changes from TodoEconometria:main
**[Update branch]** ← CLICK AQUI
[Discard commits]
**Paso 4:** Actualizar tu copia local
Ahora tu fork en GitHub esta actualizado, pero tu PC no. Ejecuta:
```bash
git checkout main
git pull origin main
Paso 5: Traer cambios a tu rama de trabajo
# Ve a tu rama de ejercicio
git checkout tu-apellido-ejercicio
# Trae los cambios de main
git merge main
# Sube a GitHub
git push origin tu-apellido-ejercicio
Listo! Tienes los ejercicios nuevos sin perder tu trabajo.
Diagrama Visual del Flujo¶
Como funciona la sincronizacion¶
%%{init: {'theme':'base', 'themeVariables': { 'fontSize':'14px'}}}%%
sequenceDiagram
actor Tú
participant Local as 💻 Tu PC<br/>(main: 01, 02)
participant TuBranch as 💻 Tu PC<br/>(tu-rama: 01, 02 + TU CÓDIGO)
participant Origin as 🌐 Tu Fork GitHub<br/>(01, 02)
participant Upstream as 👨🏫 Repo Profesor<br/>(01, 02, 03, 04, 05)
Note over Tú,Upstream: ESTADO INICIAL - Tu fork desactualizado
rect rgb(255, 243, 224)
Note over Tú,Upstream: PASO 1: Cambiar a rama main
Tú->>Local: git checkout main
activate Local
Note over Local: Ahora estás en main
end
rect rgb(232, 245, 233)
Note over Tú,Upstream: PASO 2: Descargar y fusionar cambios del profesor
Tú->>Upstream: git fetch upstream
Upstream-->>Local: Descarga [03, 04, 05]
Tú->>Local: git merge upstream/main
Note over Local: main: 01, 02, 03, 04, 05 ✅
deactivate Local
end
rect rgb(237, 231, 246)
Note over Tú,Upstream: PASO 3: Cambiar a tu rama de trabajo
Tú->>TuBranch: git checkout tu-rama
activate TuBranch
Note over TuBranch: Ahora estás en tu-rama
end
rect rgb(255, 249, 196)
Note over Tú,Upstream: PASO 4: Traer cambios a tu rama
Tú->>TuBranch: git merge main
Note over TuBranch: tu-rama: 01-05 + TU CÓDIGO ✅
deactivate TuBranch
end
rect rgb(225, 245, 254)
Note over Tú,Upstream: PASO 5: Subir todo a GitHub
Tú->>Origin: git push origin tu-rama
Note over Origin: tu-rama: 01-05 + TU CÓDIGO ✅
end
rect rgb(200, 230, 201)
Note over Tú,Upstream: ✅ RESULTADO - Tienes todo sin perder tu trabajo
end Vista Simplificada del Proceso¶
%%{init: {'theme':'base', 'themeVariables': { 'primaryColor':'#e1f5ff','primaryTextColor':'#000','primaryBorderColor':'#0277bd','secondaryColor':'#fff9c4','tertiaryColor':'#e8f5e9','noteBkgColor':'#fff3e0','noteTextColor':'#000'}}}%%
flowchart TB
subgraph Antes["❌ ANTES - Desactualizado"]
direction LR
A1["👨🏫 Repo Profesor<br/><br/>📦 Ejercicios:<br/>[01] [02] [03] [04] [05]"]
A2["🌐 Tu Fork<br/><br/>📦 Tus ejercicios:<br/>[01] [02]<br/><br/>⚠️ Te faltan 3 ejercicios"]
A3["💻 Tu PC<br/><br/>📂 tu-rama:<br/>[01] [02] + TU CÓDIGO"]
end
subgraph Proceso["🔄 PROCESO DE SINCRONIZACIÓN"]
direction TB
P1["① git fetch upstream<br/>Descargar cambios del profesor"]
P2["② git merge upstream/main<br/>Aplicar a tu main local"]
P3["③ git merge main<br/>Traer a tu rama de trabajo"]
P4["④ git push origin tu-rama<br/>Subir todo a GitHub"]
P1 --> P2 --> P3 --> P4
end
subgraph Despues["✅ DESPUÉS - Actualizado"]
direction LR
D1["👨🏫 Repo Profesor<br/><br/>📦 Ejercicios:<br/>[01] [02] [03] [04] [05]"]
D2["🌐 Tu Fork<br/><br/>📦 Tus ejercicios:<br/>[01-05] + TU CÓDIGO<br/><br/>✅ Completamente actualizado"]
D3["💻 Tu PC<br/><br/>📂 tu-rama:<br/>[01-05] + TU CÓDIGO<br/><br/>🎯 Listo para trabajar"]
end
Antes --> Proceso --> Despues
style A1 fill:#e1f5ff,stroke:#0277bd,stroke-width:2px
style A2 fill:#ffebee,stroke:#c62828,stroke-width:2px
style A3 fill:#fff3e0,stroke:#ef6c00,stroke-width:2px
style P1 fill:#e3f2fd,stroke:#1976d2,stroke-width:2px
style P2 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style P3 fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px
style P4 fill:#fff9c4,stroke:#f57f17,stroke-width:2px
style D1 fill:#e1f5ff,stroke:#0277bd,stroke-width:2px
style D2 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
style D3 fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px Metodo Detallado (Terminal)¶
Situacion¶
Trabajas en una rama (ejemplo: garcia-ejercicio-1.1) y el profesor agrego ejercicios nuevos.
Objetivo: Traer los ejercicios nuevos SIN perder tu trabajo.
PASO 1: Guarda tu trabajo actual¶
# Ver que archivos cambiaste
git status
# Guardar tus cambios
git add entregas/01_bases_de_datos/tu_apellido_nombre/
git commit -m "Guardar mi avance"
PASO 2: Ve a tu rama main¶
PASO 3: Descarga los cambios del profesor¶
Ahora tu main local tiene los ejercicios nuevos
PASO 4: Vuelve a tu rama de trabajo¶
(Reemplaza garcia-ejercicio-1.1 por el nombre de TU rama)
PASO 5: Trae los ejercicios nuevos a tu rama¶
Que hace esto?
Combina los ejercicios nuevos del profesor con tu trabajo. NO borra nada tuyo.
PASO 6: Sube a GitHub¶
Listo! Tienes los ejercicios nuevos Y tu trabajo intacto.
Que Pasa Cuando el Profesor Agrega Ejercicios?¶
%%{init: {'theme':'base', 'themeVariables': { 'git0':'#e1f5ff','git1':'#fff9c4','git2':'#ffebee'}}}%%
gitGraph
commit id: "01: Intro SQLite" tag: "Semana 1"
commit id: "02: Limpieza Datos"
branch tu-fork
checkout tu-fork
commit id: "✅ Hiciste Fork" type: HIGHLIGHT
checkout main
commit id: "03: Dask & Parquet" tag: "Semana 3"
commit id: "04: PySpark"
commit id: "05: Dashboard"
checkout tu-fork
commit id: "❌ Desactualizado" type: REVERSE
commit id: "⚠️ Te faltan 03, 04, 05" type: REVERSE El fork NO se actualiza automáticamente
Cuando el profesor agrega ejercicios nuevos al repositorio original, tu fork en GitHub NO recibe esos cambios automáticamente. Debes sincronizarlo manualmente siguiendo los pasos de esta guía.
Regla de Oro para Evitar Problemas¶
%%{init: {'theme':'base'}}%%
flowchart LR
subgraph Bien["✅ BIEN - Edita solo aquí"]
direction TB
B1["📁 entregas/01_bases_de_datos/tu_apellido_nombre/<br/><br/>├── 1.1_sqlite/<br/>│ ├── ANALISIS_DATOS.md<br/>│ ├── resumen_eda.md<br/>│ └── REFLEXION.md<br/><br/>✅ Aquí haces tus cambios"]
end
subgraph Mal["❌ MAL - NO toques esto"]
direction TB
M1["📁 ejercicios/01_bases_de_datos/<br/><br/>├── README.md ← NO TOCAR<br/>├── eda_exploratorio.py ← Solo ejecutar<br/><br/>🔒 Archivos del profesor"]
end
Bien -.->|Sin conflictos| OK["🎉 Sincronización<br/>perfecta"]
Mal -.->|Causa conflictos| NOK["⚠️ Problemas<br/>al sincronizar"]
style Bien fill:#c8e6c9,stroke:#2e7d32,stroke-width:3px
style Mal fill:#ffcdd2,stroke:#c62828,stroke-width:3px
style B1 fill:#e8f5e9,stroke:#388e3c,stroke-width:2px
style M1 fill:#ffebee,stroke:#d32f2f,stroke-width:2px
style OK fill:#a5d6a7,stroke:#43a047,stroke-width:2px
style NOK fill:#ef9a9a,stroke:#e53935,stroke-width:2px Regla de Oro
Si solo editas archivos en entregas/TU_CARPETA/, NUNCA tendrás conflictos.
El profesor actualiza ejercicios/, tú trabajas en entregas/. Cero problemas.
Que hago si Git dice "CONFLICT"?¶
Paso 1: Git te dira que archivo tiene conflicto¶
Auto-merging ejercicio_01.py
CONFLICT (content): Merge conflict in ejercicio_01.py
Automatic merge failed; fix conflicts and then commit the result.
Paso 2: Abre el archivo¶
Veras algo asi:
Paso 3: Decide que mantener¶
- Si es un archivo del profesor que NO deberias tocar → Mantén la version del profesor
- Si es TU archivo de entrega → Mantén tu version
Paso 4: Borra las marcas¶
Elimina estas lineas:
Paso 5: Termina el merge¶
Consejo
Si trabajas solo en entregas/TU_CARPETA/, esto nunca te pasara.
Resumen Ultra-Rapido¶
# 1. Guardar tu trabajo
git add .
git commit -m "Guardar avance"
# 2. Actualizar main
git checkout main
git fetch upstream
git merge upstream/main
# 3. Volver a tu rama y traer cambios
git checkout tu-rama
git merge main
# 4. Subir
git push origin tu-rama
Frecuencia: Haz esto cada lunes antes de clase.
Buenas Practicas de Sincronizacion¶
1. Sincroniza ANTES de empezar un ejercicio nuevo¶
# ✅ BIEN - Sincronizar primero
git fetch upstream && git merge upstream/main
# Ahora empieza a trabajar
# ❌ MAL - Trabajar con codigo viejo
# Empiezas sin actualizar, luego tienes conflictos
2. Haz un commit de tu trabajo ANTES de sincronizar¶
# ✅ BIEN - Guarda tu trabajo primero
git add .
git commit -m "Avance en ejercicio 03"
git fetch upstream && git merge upstream/main
# ❌ MAL - Sincronizar con cambios sin guardar
# Puedes perder tu trabajo
3. Frecuencia recomendada¶
%%{init: {'theme':'base'}}%%
gantt
title 📅 Calendario de Sincronización Semanal
dateFormat YYYY-MM-DD
section Lunes
Sincronizar antes de clase :milestone, m1, 2024-01-01, 0d
git fetch upstream :active, 2024-01-01, 1h
git merge upstream/main :active, 2024-01-01, 30m
section Martes a Jueves
Trabajar en ejercicios :2024-01-02, 3d
Commits locales :2024-01-02, 3d
section Viernes
Push de tu avance :milestone, m2, 2024-01-05, 0d
git push origin tu-rama :crit, 2024-01-05, 1h
section Domingo
Verificar actualizaciones (opcional) :done, 2024-01-07, 30m Recomendación de frecuencia
- Lunes: Sincroniza antes de clase para tener los últimos ejercicios
- Durante la semana: Trabaja normalmente, haz commits frecuentes
- Viernes: Sube tu avance a GitHub
- Domingo (opcional): Verifica si hay actualizaciones nuevas
Verificar Estado de Sincronizacion¶
Comando util para saber si estas desactualizado¶
# Ver diferencias entre tu fork y el repo del profesor
git fetch upstream
git log HEAD..upstream/main --oneline
Si ves commits nuevos:
a1b2c3d Agregar ejercicio 06
d4e5f6g Corregir typo en ejercicio 05
g7h8i9j Agregar datos para ejercicio 06
Significa que tienes 3 commits (ejercicios/actualizaciones) que no tienes.
Si no ves nada:
Significa que estas actualizado.
---
Proximos Pasos¶
Ahora que sabes como sincronizar tu fork:
- Guia de Entregas - Como entregar ejercicios
- Comandos Utiles - Cheatsheet de Git
- Fork y Clone - Si necesitas repasar los conceptos basicos