Git: el historial infinito de tu código
Git guarda una foto de tu código cada vez que lo decides (commit). Puedes volver a cualquier foto anterior. Puedes trabajar en múltiples features en paralelo. Sin Git, el trabajo en equipo es imposible.
proyecto-final-v2.html
proyecto-final-v2-BUENO.html
proyecto-final-PARA-ENTREGAR.html
proyecto-final-PARA-ENTREGAR-arreglado.html
proyecto-final-DEFINITIVO.html
proyecto-final-DEFINITIVO-de-verdad.html
Con Git: una sola carpeta, un historial completo de cada cambio, quién lo hizo y por qué.
Los tres estados del código
Necesitas entender los tres estados en los que puede estar tu código. Sin este modelo mental, los comandos parecen magia.
Tus archivos tal como están. Cualquier cambio ocurre aquí.
sin trackearLos cambios marcados para el próximo commit. Puedes elegir solo algunos archivos.
preparadoEl historial permanente. Cada commit es una foto inmutable.
guardadoBackup en la nube. Visible para el equipo.
compartidoSetup: una vez por máquina
Antes de usar Git necesitas identificarte. Esta información aparece en todos tus commits.
El ciclo diario de Git
Estos comandos son el 90% de lo que harás cada día. Apréndelos en contexto, no como lista aislada.
git add archivo.css para añadir solo un archivo.
-u: git push -u origin main.
| Comando | Qué hace |
|---|---|
| git init | Iniciar repositorio en el directorio actual |
| git clone URL | Copiar un repositorio existente de GitHub |
| git status | Ver estado: cambios, staging, rama actual |
| git add . | Añadir todos los cambios al staging |
| git add -p | Añadir cambios de forma interactiva |
| git commit -m "msg" | Crear commit con mensaje |
| git log --oneline | Historial compacto de commits |
| git diff | Ver cambios sin stagear |
| git diff --staged | Ver cambios en staging |
| git push | Subir commits al remote |
| git pull | Bajar y fusionar desde remote |
| git stash | Guardar cambios temporalmente |
| git stash pop | Recuperar cambios guardados con stash |
Branches: desarrollo paralelo
Una rama es una línea de desarrollo independiente. Trabajas en una nueva feature sin tocar el código que funciona en main. Cuando terminas, fusionas. Así trabajan todos los equipos.
main: A ─── B ─── C ─────────────── G (merge) \ / feature: D ─── E ─── F ───'
Resolución de conflictos
Cuando dos personas modifican la misma línea, Git no puede decidir. Te marca el conflicto y te pide que decidas.
Tu trabajo: elegir qué versión queda (o combinar ambas), borrar los marcadores de conflicto, y hacer commit.
GitHub: colaboración y pull requests
Git es local. GitHub es el punto de colaboración. El Pull Request permite que tu código sea revisado antes de entrar a main. Es el flujo estándar en toda empresa.
Crea el repositorio en GitHub
New repository → nombre → público. NO inicialices con README si ya tienes código local.
Conecta tu repo local
GitHub te da los comandos exactos. Cópialos:
El ciclo diario de trabajo
Nunca trabajes directamente en main:
Abre un Pull Request
En GitHub aparece un botón "Compare & pull request". Añade título descriptivo y descripción de qué cambiaste y por qué.
Code Review
El reviewer comenta líneas específicas. Respondes con nuevos commits. Cuando todos aprueban → Merge.
Limpia después del merge
Borra la rama en GitHub y localmente. Actualiza tu main local con git pull.
.gitignore: lo que Git nunca debe ver
Hay archivos que NUNCA deben subirse a GitHub: credenciales, node_modules, archivos del sistema. El .gitignore se los dice a Git.
Si subes credenciales (.env con API keys) a un repositorio público, son públicas para siempre. Aunque borres el archivo después, Git guarda el historial. Si ocurre: rota TODAS las credenciales de inmediato.
GitHub Pages: tu portfolio en internet
GitHub Pages convierte cualquier repositorio en un sitio web público. Tu portfolio tendrá URL propia sin pagar hosting.
Ve a Settings
Abre tu repositorio en GitHub → pestaña Settings → en el sidebar: Pages.
Configura la fuente
En Source: Deploy from a branch → Branch: main → Folder: / (root) → Save.
Espera el deploy
GitHub tarda 1–3 minutos. Aparecerá la URL cuando termine.
Tu URL pública
Tu sitio estará en: https://tu-usuario.github.io/nombre-repo/. Cada git push lo actualiza.
Custom domain
Con un dominio propio (desde $12/año en Namecheap) y el DNS configurado en GitHub Pages, tu portfolio puede vivir en tudominio.com en lugar de usuario.github.io/repo.
Ejercicio: publica tu portfolio en GitHub Pages
Al terminar tendrás un repositorio real en GitHub y una URL pública donde cualquier empleador puede ver tu trabajo.
De cero a publicado en GitHub Pages
Inicializa Git en tu proyecto de landing, haz el primer commit, sube a GitHub y activa Pages.
-
Verifica que Git está instalado:
git --versionen la terminal -
Configura tu identidad:
git config --global user.nameyuser.email -
Ve a tu proyecto de landing y ejecuta:
git init -
Crea un archivo
.gitignorecon.DS_Store -
git add . && git commit -m "feat: initial commit" - Crea un repositorio público en github.com (sin README)
-
git remote add origin URL && git push -u origin main - Activa GitHub Pages en Settings → Pages → main branch
- Espera 2 minutos y abre tu URL de GitHub Pages
- Haz un cambio, commit, push — verifica que la web se actualiza
Recursos de esta sesión
Juego visual que enseña los conceptos de Git desde cero. Gratuito y muy efectivo.
El libro oficial de Git completo, disponible en español y gratis.
El video más completo en español. Cubre desde init hasta pull requests.
Pon tu stack (Node, React, macOS) y genera el .gitignore perfecto.
Guía oficial con custom domains incluido.