Haz Fork del repositorio del curso, clónalo a tu máquina y configura el remote upstream. Crea tu carpeta personal en estudiantes/tu_usuario/.
Estructura del Curso y Tu Carpeta Personal
Para este curso, trabajaremos de una manera muy específica para simular un entorno profesional y evitar conflictos de código. Este documento explica dónde puedes escribir y dónde está prohibido.
Diagrama Mental del Flujo
Este diagrama resume cómo fluye la información entre el profesor y tú sin chocar.
graph TD
A[Profesor Repo] -->|Pull (Sincronizar)| B[Tu Repo Local];
B -->|Copia Archivo| C{Tu Carpeta Personal};
D[Zona Prohibida 'clase/'] -.->|Solo Lectura| B;
C -->|Edit & Commit| E[Tu Rama];
E -->|Push| F[Tu GitHub Fork];
F -->|Pull Request| A;
style C fill:#9f9,stroke:#333
style D fill:#f99,stroke:#333
La Regla de Oro: estudiantes/{tu_usuario}
El repositorio tiene una estructura estricta dividida en dos mundos:
- 🔴 Zona Prohibida (
clase/): Aquí subo yo (el profesor) el material. Si modificas algo aquí, romperás tu repositorio al intentar actualizar. - 🟢 Zona Segura (
estudiantes/tu_usuario/): Aquí es donde vives tú. Puedes crear, borrar y destruir lo que quieras aquí.
Diagrama de la Estructura
ia_p26/ (Raíz del Proyecto)
├── .gitignore
├── README.md
├── clase/ <-- 🔴 PROHIBIDO TOCAR (Solo lectura)
│ ├── semana01/
│ │ ├── ejemplo_a.py
│ │ └── notas.md
│ └── ...
└── estudiantes/ <-- 🟢 TU ZONA DE TRABAJO
├── uumami/ <-- ✅ TU CARPETA (Safe Zone)
│ ├── semana01/
│ │ └── tarea_copia.py
│ └── mis_notas.txt
└── maria_dev/ <-- ❌ CARPETA DE OTRO (No tocar)
El Concepto de “Mirror” (Espejo)
Como no puedes editar la carpeta clase/, ¿cómo trabajas en los ejercicios?
Respuesta: Copias y Pegas a tu carpeta.
Anatomía de una Colisión (Por qué fallamos)
Imagina que el profesor sube el archivo clase/semana1/calculadora.py que tiene errores y debes arreglar.
❌ Lo que NO debes hacer (Colisión Segura)
sequenceDiagram
participant P as Profesor (Repo Original)
participant E as Estudiante (Tu Local)
P->>E: Pull (Bajas archivo: clase/hola.py)
Note over P: hola.py dice: "Hola Mundo"
E->>E: Modificas clase/hola.py
Note over E: Cambias a: "Hola Pedro"
P->>P: Profesor actualiza clase/hola.py
Note over P: Cambia a: "Hola Clase 2024"
E->>P: Intentas Pull de nuevo
P--x E: 💥 CONFLICTO!
Note over E: Git no sabe si quieres "Hola Pedro"<br/>o "Hola Clase 2024".<br/>Todo se rompe.
Explicación:
- Abres
clase/semana1/calculadora.py. - Arreglas el código ahí mismo.
- Guardas.
- Mañana el profesor actualiza
calculadora.pycon una mejora. - Cuando hagas
git pull upstream main, Git te gritará: CONFLICTO. Tu versión choca con la del profesor. Tendrás que borrar tu trabajo o sufrir arreglando el conflicto manual.
✅ Lo que SÍ debes hacer (El Camino del Éxito)
sequenceDiagram
participant P as Profesor (Repo Original)
participant E as Estudiante (Tu Local)
P->>E: Pull (Bajas archivo: clase/hola.py)
E->>E: COPIAS archivo a estudiantes/pedro/hola.py
Note over E: Ahora tienes tu propia versión segura
E->>E: Modificas estudiantes/pedro/hola.py
Note over E: Cambias a: "Hola Pedro"
P->>P: Profesor actualiza clase/hola.py
E->>P: Intentas Pull de nuevo
P->>E: ✅ Éxito (Update Fast-Forward)
Note over E: Se actualiza la carpeta clase/<br/>Tu archivo en estudiantes/ sigue intacto.
Explicación:
- Lees el archivo en
clase/semana1/calculadora.py. - Copias el archivo a
estudiantes/tu_usuario/semana1/calculadora.py. - Editas y resuelves el problema en TU COPIA.
- Subes tu copia.
- El profesor actualiza su archivo original.
- Haces
git pull upstream main. - Git actualiza la carpeta
clase/sin problemas. Tu archivo enestudiantes/permanece intacto y seguro. Cero conflictos.
Setup Inicial: Crea tu Espacio
Tu primera misión es crear tu “oficina” dentro del repositorio.
- Abre tu terminal en la raíz del proyecto.
- Ve a la carpeta de estudiantes:
cd estudiantes - Crea una carpeta EXACTAMENTE con tu nombre de usuario de GitHub.
- Ejemplo: Si tu usuario es
uumami, tu carpeta debe serestudiantes/uumami/.
mkdir uumami - Ejemplo: Si tu usuario es
- Entra a tu carpeta:
cd uumami - Crea un archivo de prueba para que Git detecte la carpeta (Git ignora carpetas vacías):
touch .gitkeep
Setup del Repositorio (Fork y Clone)
Sigue estos pasos con cuidado. Usaremos el repositorio oficial de la clase: https://github.com/{org}/{repo-name}
1. Fork (Bifurcación)
Paso Crítico: No trabajaremos directamente sobre mi repositorio, sino sobre una copia tuya vinculada al mío.
- Ve a https://github.com/{org}/{repo-name}.
- Arriba a la derecha, dale click al botón Fork.
- GitHub te pedirá confirmar el nombre del repositorio.
- Puedes dejarlo como
ia_p26(recomendado). - O puedes ponerle un nombre personalizado (ej.
mi-curso-ia,ia-repo-personal). Este nombre es tu “placeholder”, úsalo cuando veas referencias a tu repo.
- Puedes dejarlo como
- Dale a “Create Fork”. Ahora tendrás una copia en
https://github.com/TU_USUARIO/NOMBRE_DEL_FORK.
2. Clone (Clonar)
Ahora bajaremos TU copia (tu fork) a tu computadora.
Prompt para LLM: "Ya hice un Fork del repositorio. Ahora quiero clonarlo en mi computadora usando SSH.
- ¿Cuál es el comando
git cloneque debo usar para mi repositorio:git@github.com:[TU_USUARIO]/[NOMBRE_DEL_FORK].git?- ¿En qué carpeta me recomiendas organizarlo?"
3. Configurar el “Upstream”
Tu computadora sabe que origin es TU repositorio (tu fork). Pero necesita saber que existe el repositorio del profesor (upstream) para bajar las actualizaciones de la clase.
Ejecuta esto en tu terminal dentro de la carpeta del proyecto:
git remote add upstream git@github.com:{org}/{repo-name}.git
Para verificar:
git remote -v
Deberías ver 4 líneas:
origin-> Tu Fork (donde subes tus tareas).upstream-> Repo del Profesor (de donde bajas las clases).