Git, GitHub y proyecto final ENSO–Baja
2026-09-01
Marina ya tiene:
enso_baja/
├── data/
├── notebooks/
│ └── 01_explora_datos.ipynb
├── scripts/
│ └── plot_sst_timeseries.py
├── figures/
│ └── ssta_baja_timeseries.png
├── README.md
└── environment.ymlHoy quiere evitar esto:
¿Cómo guardamos la historia de un análisis sin duplicar archivos ni perder versiones?
Hoy usaremos Git para:
Git
Sistema de control de versiones.
Vive en tu computadora.
Registra la historia del proyecto.
GitHub
Plataforma en línea.
Hospeda repositorios.
Facilita respaldo y colaboración.
git config --global user.name "Tu Nombre"
git config --global user.email "tu_correo@ejemplo.edu"
git config --global init.defaultBranch mainRevisar:
Hoy repetiremos este ciclo varias veces.
No basta con hacer un solo commit al final.
Desde la terminal:
Inicializar Git:
Revisar:
git status nos dice:
Regla de oro:
antes y después de cada paso.
Agregar archivos pequeños y esenciales:
Revisar:
Guardar:
Ejecuta:
Responde:
Agregar el análisis exploratorio:
Agregar el script:
Guardar:
Ahora el proyecto tiene memoria.
Cada commit debe representar una unidad de trabajo con sentido.
Edita el título de la figura en:
Por ejemplo cambia:
por algo más específico.
git diff muestra qué cambió línea por línea.
Esto es una de las razones principales para usar archivos de texto como scripts.
Si el cambio nos gusta:
Revisar:
Haz un cambio pequeño en el README:
git diff;Mensaje sugerido:
Si hacemos:
podríamos intentar agregar:
Pero no todo debe estar en Git.
| Archivo | ¿Git? | Razón |
|---|---|---|
README.md |
sí | explica el proyecto |
environment.yml |
sí | permite recrear el ambiente |
scripts .py |
sí | reproducen el análisis |
notebooks .ipynb |
sí | documentan exploración |
datos grandes .nc |
no | pesan mucho; pueden tener restricciones |
| figuras regenerables | depende | si se generan con código, no siempre hace falta |
| tokens/contraseñas | jamás | riesgo de seguridad |
.gitignoreCrear un archivo llamado:
con:
Agregarlo:
.gitignoreEjecuta:
Pregunta:
¿Aparecen los archivos de
data/como pendientes?
Si aparecen, algo está mal en .gitignore o ya habían sido agregados antes.
Si modificaste un archivo y quieres descartar el cambio:
Ejemplo:
Cuidado: esto elimina cambios no guardados en Git.
Para este curso basta saber:
git log muestra la historia;No entraremos a rebase ni historia avanzada.
En GitHub:
Después en terminal:
Deberían verse:
No deberían verse:
README.md.Usando los datos del proyecto:
cada persona o pareja debe construir un notebook final.
Pregunta general:
¿Qué relación interesante puedes mostrar entre ENSO, SST regional y precipitación local?
El notebook debe incluir:
No tiene que ser perfecto.
Sí tiene que ser entendible.
Puedes elegir una o inventar otra:
enso_baja/
├── notebooks/
│ └── proyecto_final.ipynb
├── scripts/
├── figures/
├── README.md
├── .gitignore
└── environment.ymlEl repositorio debe estar en GitHub.
No hacer un solo commit al final.
Ejemplos de commits útiles:
Load SST and ONI data
Calculate SST anomalies
Compare ONI and precipitation
Add final interpretation
Clean notebook for submissionMínimo sugerido: tres commits con sentido.
El README puede ser breve:
En tres sesiones practicamos:
Éste es un flujo de trabajo básico para empezar investigación computacional.
Traeremos:
La sesión 4 será clínica + presentaciones relámpago.
El objetivo no es que el análisis sea definitivo.
El objetivo es que el análisis sea:
Eso es programación científica.
Introducción a programación científica · DOF · Sesión 3