Bienvenido al Curso
7 módulos · Git & GitHub · Español
Git te ayuda a rastrear cambios, evitar pérdidas de trabajo y colaborar de forma más efectiva. En este curso breve aprenderás el flujo de trabajo central de Git y GitHub, y cómo empezar a aplicarlo a proyectos reales de análisis de datos de inmediato.
Se te anima a traer un proyecto que te gustaría empezar a organizar con control de versiones.
¿Qué es el Control de Versiones?
El problema que resuelve, Git, GitHub y cuándo usarlo
El problema que resuelve
¿Alguna vez has tenido archivos como estos en tu carpeta?
analisis_final.R analisis_final_v2.R analisis_final_ESTE_SÍ.R analisis_DEFINITIVO_revisado_2.R analisis_para_entregar_CORRECTO_FINAL.R
El control de versiones elimina este caos. Con Git, cada cambio queda registrado automáticamente con fecha, autor y descripción. Puedes volver a cualquier versión anterior en cualquier momento.
¿Qué es Git?
Git es un sistema de control de versiones distribuido, creado por Linus Torvalds en 2005. Funciona localmente en tu computadora y lleva un historial completo de todos los cambios de tu proyecto.
Repositorio (repo): carpeta del proyecto con todo su historial de cambios.
Commit: una "foto" del estado del proyecto en un momento dado.
Branch (rama): una versión paralela para trabajar sin afectar la principal.
Merge: combinar los cambios de una rama con otra.
¿Qué es GitHub?
GitHub es una plataforma en la nube que aloja repositorios Git. Agrega herramientas de colaboración: revisión de código, seguimiento de tareas, documentación y más.
Git: la herramienta local que gestiona el historial de cambios.
GitHub: el servicio en línea que almacena y comparte tu repositorio.
Analogía: Git es como el sistema de guardado; GitHub es la nube donde sincronizas.
¿Cuándo usar control de versiones?
- Proyectos de análisis de datos con código (R, Python, SQL, etc.)
- Documentos técnicos que evolucionan con el tiempo
- Proyectos colaborativos con más de una persona
- Cualquier trabajo que quieras reproducir o auditar en el futuro
Configuración Inicial
Instalación, identidad en Git y autenticación con GitHub
Instalación
Antes de empezar necesitas instalar Git y crear una cuenta en GitHub.
- Descarga Git desde:
https://git-scm.com/downloads - Crea una cuenta gratuita en:
https://github.com - Descarga GitHub Desktop desde:
https://desktop.github.com
Configuración básica (Terminal)
Abre la terminal (o Git Bash en Windows) y configura tu identidad. Solo necesitas hacer esto una vez:
# Configura tu nombre y correo globalmente git config --global user.name "Tu Nombre" git config --global user.email "tu@email.com" # Verifica la configuración git config --list
Autenticación con GitHub
La forma más sencilla es usar GitHub Desktop, que maneja la autenticación automáticamente al iniciar sesión. Si prefieres la terminal:
- Crea un token de acceso personal en: GitHub → Settings → Developer settings → Personal access tokens
- Usa ese token como contraseña cuando Git lo solicite en la terminal.
Trata tu token de acceso personal como una contraseña. Nunca lo incluyas en el código ni lo subas a un repositorio público.
El Flujo de Trabajo Esencial
commit · push · pull — el ciclo que usarás todos los días
El ciclo básico de Git se resume en tres acciones: modificar archivos, registrar los cambios (commit) y sincronizar con GitHub (push/pull).
Referencia de comandos esenciales
| Comando | ¿Qué hace? |
|---|---|
| git add | Selecciona los archivos que quieres incluir en el próximo commit |
| git commit | Guarda una "foto" de los cambios con un mensaje descriptivo |
| git push | Sube los commits locales a GitHub (repositorio remoto) |
| git pull | Descarga y aplica los cambios del repositorio remoto |
| git status | Muestra el estado actual: qué ha cambiado y qué está listo para commit |
| git log | Muestra el historial de commits |
Ejemplo práctico paso a paso
Supón que modificaste tu script de análisis. Así registrarías los cambios:
# 1. Ver qué archivos cambiaron git status # 2. Agregar archivos específicos al staging area git add analisis.R # 2b. O agregar TODOS los cambios de una vez git add . # 3. Crear el commit con un mensaje claro git commit -m "Agrego limpieza de valores nulos en columna edad" # 4. Subir a GitHub git push origin main
Usa el imperativo presente: "Agrego", "Corrijo", "Actualizo" — no "Agregué" o "Se actualizó".
Sé específico: "Corrijo error en cálculo de media por grupo" es mejor que "fix bug".
Mantén el mensaje en menos de 72 caracteres.
Las tres zonas de Git
- Directorio de trabajo: donde editas tus archivos normalmente.
- Staging area (índice): zona de preparación donde seleccionas qué cambios incluir.
- Repositorio local: historial permanente de commits guardados en
.git/
Repositorios — Crear, Clonar y Gestionar
.gitignore, README y estructura del proyecto
Crear un nuevo repositorio
Opción A — Desde GitHub (recomendado para empezar)
- Ve a
github.comy haz clic en New repository - Asigna un nombre descriptivo (ej:
analisis-encuesta-2024) - Agrega una descripción breve
- Elige visibilidad: Public o Private
- Marca Add a README file
- Haz clic en Create repository
- Clona el repositorio a tu computadora (ver sección siguiente)
Opción B — Desde tu carpeta local (terminal)
# Navega a la carpeta del proyecto cd mi-proyecto # Inicializa el repositorio Git git init # Conecta con un repositorio remoto en GitHub git remote add origin https://github.com/tuusuario/mi-proyecto.git
Clonar un repositorio existente
Clonar crea una copia local completa (con todo el historial) de un repositorio remoto:
git clone https://github.com/tuusuario/nombre-repo.git
Con GitHub Desktop: File → Clone repository → pega la URL o busca entre tus repos.
El archivo .gitignore
Le dice a Git qué archivos no debe rastrear. Es esencial para proyectos de datos para excluir datos crudos, credenciales y archivos temporales.
# Datos crudos y archivos grandes *.csv *.xlsx data/raw/ # Credenciales y configuración local .env config_local.R # Archivos temporales del sistema __pycache__/ .Rhistory .DS_Store *.log
SÍ: scripts de código (.R, .py, .sql), documentación (.md), resultados resumidos, figuras generadas.
NO: datos crudos pesados, datos sensibles o privados, archivos temporales del sistema.
Considera usar DVC (Data Version Control) para versionar datasets grandes.
El archivo README.md
El README es la primera página de tu repositorio. Un buen README incluye:
- Nombre y descripción del proyecto
- Objetivo del análisis
- Estructura de carpetas
- Instrucciones de instalación y uso
- Fuentes de datos utilizadas
- Nombre del autor y fecha
Colaboración — Ramas, Pull Requests y Conflictos
El corazón de la colaboración en GitHub
¿Qué es una rama (branch)?
Una rama es una línea independiente de desarrollo. Te permite
experimentar o trabajar en una nueva funcionalidad sin afectar
la versión principal del proyecto (rama main).
Trabajar en características nuevas sin romper el código que funciona.
Revisar el trabajo de un colaborador antes de integrarlo.
Mantener versiones estables del análisis mientras se experimenta.
Trabajar con ramas
# Ver todas las ramas git branch # Crear una nueva rama git branch nueva-funcion # Cambiar a esa rama git checkout nueva-funcion # Crear y cambiar en un solo comando (forma recomendada) git checkout -b nueva-funcion # Volver a la rama principal git checkout main # Fusionar los cambios de nueva-funcion en main git merge nueva-funcion
Pull Requests (PR)
Un Pull Request es la forma formal de proponer que tus cambios (de una rama) se integren a la rama principal. Es el núcleo de la colaboración en GitHub.
- Crea una rama y sube tus cambios con
git push - Ve a GitHub y haz clic en "Compare & pull request"
- Escribe una descripción clara de los cambios realizados
- Asigna revisores si es un proyecto colaborativo
- Una vez aprobado, haz clic en "Merge pull request"
Resolución de conflictos
Un conflicto ocurre cuando dos personas modifican la misma parte de un archivo y Git no puede decidir automáticamente cuál versión conservar. Git marcará los conflictos así:
<<<<<<< HEAD resultado <- mean(datos$edad, na.rm = TRUE) ======= resultado <- median(datos$edad, na.rm = TRUE) >>>>>>> rama-colaborador
Para resolver: edita el archivo manualmente dejando solo la versión
correcta (o combinando ambas), luego haz git add y
git commit.
Haz git pull frecuentemente para mantenerte actualizado.
Divide el trabajo en archivos o secciones distintas con tu equipo.
Usa ramas cortas: crea, trabaja y fusiona rápido.
Comunica con tu equipo qué archivos está modificando cada quien.
GitHub Desktop y Línea de Comandos
GUI para empezar · Terminal para mayor control
GitHub Desktop
GitHub Desktop es la interfaz gráfica oficial de GitHub. Facilita el uso de Git sin necesidad de recordar todos los comandos. Ideal para comenzar.
| Acción | En GitHub Desktop |
|---|---|
| Clonar un repo | File → Clone Repository |
| Ver cambios | Panel izquierdo muestra archivos modificados |
| Hacer un commit | Escribir mensaje y clic en "Commit to main" |
| Push / Pull | Botón "Push origin" / "Fetch origin" en la barra superior |
| Crear una rama | Branch → New Branch |
| Cambiar de rama | Menú "Current Branch" en la barra superior |
Referencia rápida de comandos
A medida que te sientas más cómodo, la terminal te da más control y velocidad. Aquí los comandos que usarás con más frecuencia:
| Comando | Descripción |
|---|---|
| git init | Inicializar repositorio en carpeta actual |
| git clone <url> | Clonar repositorio remoto a tu computadora |
| git status | Ver el estado actual de archivos |
| git add <archivo> | Agregar archivo específico al staging |
| git add . | Agregar todos los cambios al staging |
| git commit -m 'msg' | Crear commit con mensaje descriptivo |
| git push | Subir commits locales a GitHub |
| git pull | Descargar cambios de GitHub |
| git log --oneline | Historial resumido de commits |
| git diff | Ver diferencias no confirmadas |
| git branch | Listar ramas disponibles |
| git checkout -b rama | Crear y cambiar a nueva rama |
| git merge rama | Fusionar rama en la rama actual |
Buenas Prácticas para Proyectos de Datos
Estructura, flujo recomendado y checklist de reproducibilidad
Estructura de carpetas recomendada
Una estructura clara hace que tu repositorio sea fácil de entender para colaboradores — y para ti mismo en el futuro.
Flujo de trabajo recomendado
- Antes de empezar: haz
git pullpara obtener los cambios más recientes. - Crea una rama para cada tarea o análisis nuevo.
- Haz commits pequeños y frecuentes con mensajes descriptivos.
- Al terminar:
git pushy crea un Pull Request para revisión. - Mantén el README actualizado con cada cambio importante.
Checklist de reproducibilidad
- El código corre de principio a fin sin intervención manual.
- Las rutas de archivos son relativas, no absolutas.
- Las dependencias y versiones de paquetes están documentadas (
requirements.txt,renv.lock, etc.). - Los datos crudos están descritos aunque no estén en el repositorio.
- Hay un script principal (
main.R,run_analysis.py) que ejecuta todo el pipeline. - El README explica cómo reproducir el análisis desde cero.
renv (R): para gestionar versiones de paquetes en proyectos de R.
conda / venv (Python): para entornos virtuales reproducibles.
DVC: Data Version Control — para versionar datasets grandes con Git.
GitHub Actions: para automatizar tareas como ejecutar pruebas o generar reportes.
Resumen del Curso
Lo que aprendiste · Próximos pasos
| Módulo | Concepto clave |
|---|---|
| 01 | El control de versiones elimina el caos de múltiples copias de archivos. |
| 02 | Configura Git con tu nombre y email; usa GitHub Desktop para comenzar fácil. |
| 03 | El ciclo básico es: modificar → add → commit → push. |
| 04 | Usa .gitignore para excluir datos crudos; documenta todo con README.md. |
| 05 | Las ramas y Pull Requests son el corazón de la colaboración. |
| 06 | GitHub Desktop para empezar; la terminal para mayor control y velocidad. |
| 07 | Una buena estructura y commits frecuentes hacen tu trabajo reproducible. |
Próximos pasos
- Empieza con un proyecto real: crea un repositorio para tu análisis actual.
- Practica hacer al menos un commit por sesión de trabajo.
- Explora GitHub Pages para publicar reportes de análisis como sitios web.
- Consulta el libro gratuito Pro Git en
progit.org - Practica en los cursos interactivos de GitHub Skills en
skills.github.com
¡Felicitaciones por completar el curso!
Con estas herramientas tu flujo de trabajo será más organizado, transparente y reproducible.