lección 4
GitHub: tu código en la nube
Crear cuenta en GitHub, conectar tu repo local, push, clone. Tu código accesible desde cualquier sitio, con backup y colaboración.
⏱ 50 min
Hasta ahora, todo tu trabajo con Git vive en tu ordenador. Si se te rompe el disco duro, adiós código. Si quieres compartir tu trabajo con un compañero, ¿qué haces, le pasas un pendrive? Y si estás en el café trabajando con tu portátil y quieres continuar en el PC de casa, ¿copias la carpeta a Google Drive? Git resuelve el control de versiones LOCAL, pero necesitas algo más para el mundo real: un lugar central donde tu código viva en la nube, accesible desde cualquier sitio, con backup automático y herramientas de colaboración. Ese lugar es GitHub.
GitHub es a Git lo que Gmail es al email. El email es un protocolo — Gmail es un servicio que te da una interfaz bonita, almacenamiento y funcionalidades extra. Git es la herramienta de control de versiones — GitHub es una plataforma que aloja tus repos en la nube y añade colaboración, revisión de código, issues, automatización y mucho más. No es la única opción —existen GitLab, Bitbucket, Azure DevOps— pero es la más popular con diferencia: en su informe anual de 2025, GitHub decía pasar de 180 millones de personas registradas, y sigue subiendo. La cifra exacta da un poco igual; lo que importa es lo otro: si un proyecto de código abierto existe, casi seguro que está ahí. Y cuando busques trabajo, tu perfil de GitHub es lo primero que va a mirar quien te entreviste.
### Breve historia: por qué existe GitHub
Git nació en 2005 para gestionar el kernel de Linux. Era una herramienta de línea de comandos, potente pero poco accesible. En 2008, Tom Preston-Werner, Chris Wanstrath y PJ Hyett crearon GitHub con una idea: "¿y si hacemos que colaborar en código sea tan fácil como en una red social?". Antes de GitHub, compartir código abierto era un lío de parches por email. GitHub lo convirtió en: fork → editar → Pull Request. En 2018, Microsoft compró GitHub por 7.500 millones de dólares. Hoy es la plataforma donde vive prácticamente todo el software del mundo.
### Paso 1: Crear tu cuenta en GitHub
Si no tienes cuenta, ve a github.com y créala. Es gratis para repos públicos y privados ilimitados. Algunos consejos para tu perfil:
- Usa un nombre de usuario profesional (no "xXx_darkCoder_xXx"). Este es tu portfolio ante empleadores.
- Pon tu nombre real y una foto. Los reclutadores miran GitHub.
- Activa la autenticación de dos factores (2FA). GitHub la exige a quien publica software que usa mucha gente, y si algún día te toca te avisa con plazo — pero actívala igual desde el principio: tu cuenta de GitHub va a ser tu portfolio, y recuperarla si te la roban es un infierno.
- Añade tu email. Lo necesitarás para conectar con Git.
### Paso 2: Crear un repositorio en GitHub
Un repo en GitHub es como una carpeta en la nube que almacena tu código, su historial y toda la información de colaboración. Para crear uno:
- 01.Ve a github.com → botón verde "New" (o github.com/new)
- 02.Nombre: mi-proyecto (el mismo nombre que tu repo local)
- 03.Descripción: "Pipeline de datos para práctica de Git"
- 04.Visibilidad: Public (para que sea parte de tu portfolio) o Private
- 05.NO marques "Initialize with README" (ya tienes código local)
- 06.Click en "Create repository"
GitHub te mostrará una página con instrucciones. La que nos interesa es "…or push an existing repository from the command line" — porque nosotros YA tenemos un repo local y queremos subirlo.
### Paso 3: Conectar tu repo local con GitHub (git remote)
Ahora necesitas decirle a tu repo local: "oye, tienes una copia en la nube que se llama origin y está en esta URL de GitHub". Eso es un remote — una referencia a un repo remoto. origin es el nombre convencional para el remote principal (como main es el nombre convencional para la branch principal):
1# Conectar tu repo local con GitHub2# Sustituye TU-USUARIO por tu nombre de usuario de GitHub3git remote add origin https://github.com/TU-USUARIO/mi-proyecto.git45# Verificar que se añadió6git remote -v7# origin https://github.com/TU-USUARIO/mi-proyecto.git (fetch)8# origin https://github.com/TU-USUARIO/mi-proyecto.git (push)
Añadir GitHub como remote (origin)
origin no es un nombre mágico — es una convención. Podrías llamarlo "github" o "nube" si quisieras. Pero el 99.99% de repos usan origin, así que no seas creativo aquí. Los nombres creativos son para tus branches, no para tus remotes.
### Paso 4: Subir tu código (git push)
git push envía tus commits locales a GitHub. La primera vez, necesitas especificar a dónde enviar con -u (upstream tracking). Después, un simple git push basta:
1# Primera vez: establecer el tracking2git push -u origin main3# Git te pedirá autenticarte en GitHub. Tu contraseña NO vale.4# Lo más fácil es haber hecho antes gh auth login (ver más abajo);5# si no, necesitas un Personal Access Token.67# Después de la primera vez, solo necesitas:8git push9# (Git recuerda que main local → main en origin)
Subir tu código a GitHub por primera vez
GitHub ya NO acepta contraseñas desde 2021. Necesitas un Personal Access Token (PAT) o configurar SSH keys. El PAT es más sencillo para empezar: lo generas en GitHub, lo pegas como "contraseña" cuando Git te lo pide, y listo. Guárdalo en un lugar seguro porque solo lo ves una vez.
### Autenticación: PAT vs SSH
Tienes dos opciones para autenticarte con GitHub. La que recomendamos para empezar: instala la GitHub CLI y ejecuta gh auth login. Se abre el navegador, te identificas, y ya está. Los otros dos caminos (PAT y SSH) funcionan, pero son más pasos:
Tu contraseña de GitHub NO vale para git push. GitHub dejó de aceptarla en 2021. Si al hacer push te pide "Password", no pongas tu contraseña: necesitas gh auth login (lo más fácil), un Personal Access Token o una clave SSH. Sin eso, el push se rechaza con un mensaje confuso.
- Personal Access Token (PAT): generas un token en GitHub y lo usas como contraseña. Más fácil de configurar. Ideal para empezar.
- SSH Keys: generas un par de claves en tu máquina y subes la pública a GitHub. Más seguro a largo plazo. No tienes que poner token cada vez.
1# Opción recomendada para empezar: GitHub CLI (gh)2# Instalar GitHub CLI:3brew install gh45# Autenticarse (abre el navegador):6gh auth login7# Selecciona: GitHub.com → HTTPS → Yes → Login with browser8# ¡Listo! Ya no te pedirá token nunca más.
La forma más fácil: GitHub CLI para autenticación
### git clone: descargar un repo existente
El caso inverso: alguien ya tiene un repo en GitHub y tú quieres descargarlo en tu máquina. Para eso existe git clone — crea una copia completa del repo (código + historial + branches + todo):
1# Clonar un repo público (no necesitas autenticación)2git clone https://github.com/usuario/nombre-repo.git34# Eso crea una carpeta nombre-repo/ con todo el proyecto5cd nombre-repo6git log --oneline # ¡todo el historial está aquí!7git branch -a # incluso las branches remotas
Clonar un repositorio existente
### git pull: traer cambios de GitHub a tu máquina
Cuando trabajas en equipo, tus compañeros suben cambios a GitHub constantemente. Para actualizar tu copia local con lo último que hay en GitHub, usas git pull. Es lo contrario de git push: push sube, pull baja.
1# Descargar los últimos cambios de GitHub2git pull34# Es equivalente a: git fetch + git merge5# fetch = "descarga los cambios pero no los apliques"6# merge = "aplica los cambios descargados"7# pull = "haz ambas cosas de una vez"
Actualizar tu repo local con cambios remotos
Rutina diaria en un equipo profesional: lo PRIMERO que haces al sentarte a trabajar es git pull en main para tener la última versión. Luego creas tu feature branch desde ese main actualizado. Así evitas trabajar sobre una versión desactualizada.
### Leer git status después del primer push: ahead y behind
Después del primer push, git status empieza a hablarte de "ahead" y "behind". Conviene entenderlo, porque lo vas a leer a diario:
1# Las cinco cosas que te puede decir git status -sb:2## main...origin/main # estás igual que GitHub3## main...origin/main [ahead 2] # tienes 2 commits que aún no has subido -> git push4## main...origin/main [behind 3] # el equipo subió 3 que tú no tienes -> git pull5## main...origin/main [ahead 1, behind 3] # las dos cosas a la vez6## feature/exportar-json # sin "...origin/": esta rama sólo está en tu ordenador
ahead = te falta subir. behind = te falta bajar. Sin "...origin/..." = no está en GitHub.
Cuando salen ahead y behind a la vez, el orden importa: primero git pull (traerte lo del equipo) y después git push (subir lo tuyo). Si lo intentas al revés, GitHub rechaza el push con "Updates were rejected". No es que hayas roto nada: es que alguien subió algo mientras tú trabajabas y hay que traérselo antes.
### Subir una branch a GitHub
No solo main va a GitHub. También subes tus feature branches — especialmente cuando quieres pedir una revisión (Pull Request, que veremos en la siguiente lección):
1# Crear branch local y trabajar2git switch -c feature/nueva-funcionalidad3# ... hacer cambios y commits ...45# Subir tu branch a GitHub (primera vez)6git push -u origin feature/nueva-funcionalidad78# Después de eso, simplemente:9git push
Subir una feature branch a GitHub
Regístrate para guardar tu progreso.
## comentarios
Reporta erratas, ayuda a otros o comparte tu opinión. Sé constructivo.
Inicia sesión para comentar y responder.
cargando comentarios...