P01 · Tu repositorio de aprendizaje
El encargo
Tu primer cliente eres tú. Necesitas un sitio donde practicar sin miedo a romper nada, que se quede guardado en la nube, y donde Claude pueda trabajar contigo bajo tus reglas.
Alcance
Incluye: configurar Git, crear ~/Work/taller, commits, diff, deshacer, ramas, un conflicto provocado, GitHub (push, pull, issue, pull request) y Claude Code con tu CLAUDE.md.
No incluye: programar nada. Los archivos de este repositorio son Markdown: lo que se practica es el taller, no el código.
Parte 0 · Preparar Git (sesión 2 · 10 min)
Tres ajustes que se hacen una vez en la vida. Antes de ejecutar cada uno, léelo:
git config --global init.defaultBranch main
git config --global core.editor "code --wait"
git config --global --list
- Que los repositorios nuevos empiecen en la rama
main(ahora mismo tu Git usamaster, el nombre antiguo). → rama - Que cuando Git necesite que escribas algo (un mensaje de merge, por ejemplo), abra VS Code y espere a que cierres la pestaña, en lugar de Neovim dentro de la terminal.
- Ver tu configuración. Comprueba que aparecen tu
user.namey tuuser.email: son la firma de cada commit.
Parte 1 · El taller en la terminal (sesión 2 · 30 min)
cd ~/Work
pwd
mkdir taller
cd taller
pwd
mkdir notas
touch README.md notas/comandos.md
ls -la
- Antes de cada comando, di qué va a pasar. Después, comprueba con
pwdolsque ha pasado. - Abre la carpeta en el editor:
code . - En
README.mdescribe, en Markdown: un título (# Mi taller), una frase de qué es este repositorio, y una lista con las 15 fases del roadmap (solo los nombres). - En
notas/comandos.md: los comandos de la tabla del apartado 4.2 de la Fase 1, explicados con tus palabras.
Parte 2 · Primeros commits, diff y deshacer (sesión 3 · 1 h)
Convertir la carpeta en repositorio:
git init
git status
Lee lo que dice git status: dos archivos en rojo, untracked (Git los ve, pero no los sigue).
Primer commit:
git add README.md
git status
git commit -m "Añade README inicial"
git status
Fíjate en cómo cambia git status en cada paso: rojo → verde → limpio. Eso son los tres estados del apartado 4.6.
Segundo commit:
git add notas/comandos.md
git commit -m "Añade chuleta de comandos de terminal"
git log --oneline
Ver un diff: cambia una línea del README en VS Code y guarda. Entonces:
git status
git diff
Rojo lo que quitaste, verde lo que pusiste. Ahora míralo también en VS Code (panel Control de código fuente → clic en el archivo). Haz commit con un mensaje que describa el cambio.
Deshacer (el ejercicio más importante de esta parte):
- Borra la mitad del README y guarda. Ábrelo: está destrozado.
git status→ modified.git diff→ todo en rojo.git restore README.md- Abre el README: está intacto.
Acabas de ver tu red de seguridad funcionando. Repítelo hasta que te parezca aburrido.
Parte 3 · Ramas y un conflicto provocado (sesión 4 · 1 h)
Una rama sin conflicto:
git switch -c idea-objetivos
Añade al README una sección ## Mis objetivos con tres objetivos tuyos (freelance, empleo, SaaS). Commit. Después:
git switch main
Abre el README: la sección no está. Vive en la otra rama. Ahora:
git merge idea-objetivos
git log --oneline
git branch -d idea-objetivos
Un conflicto a propósito:
- En
main, cambia la primera frase del README a "Mi taller de prácticas de desarrollo web". Commit. git switch -c otra-frase. Cambia la misma frase a "Aquí aprendo a dirigir a la IA". Commit.git switch mainygit merge otra-frase.- Conflicto. Abre el README en VS Code: verás las dos versiones marcadas con
<<<<<<<,=======y>>>>>>>, y botones encima. - Elige una (o escribe una mezcla), guarda, y:
git add README.md
git commit
Se abrirá VS Code con el mensaje de merge ya escrito (gracias a la parte 0). Cierra la pestaña y el commit se completa.
Parte 4 · GitHub (sesión 5 · 1,5 h)
Crear el repositorio remoto (privado) y subir todo:
gh auth status
gh repo create taller --private --source=. --remote=origin --push
git remote -v
gh repo view --web
El tercer comando hace tres cosas a la vez: crea el repositorio en GitHub, lo registra como remoto llamado origin y sube tus commits. En el navegador, mira: tu README aparece como portada.
Bajar un cambio hecho fuera (pull):
- En GitHub, edita el README desde la web (icono del lápiz): añade una línea al final. Confírmalo con Commit changes.
- En tu terminal:
git pull. Abre el README: tienes el cambio.
Un issue cerrado desde un commit:
gh issue create --title "Añadir sección de recursos al README" --body "Enlazar los tres recursos que más uso."
Apunta el número que te da (será el #1). Haz el cambio en el README y:
git add README.md
git commit -m "Añade sección de recursos (closes #1)"
git push
gh issue list --state all
El issue aparece cerrado y enlazado al commit.
Un pull request:
git switch -c mejora-notas
Mejora notas/comandos.md (añade los tres errores típicos de la terminal). Commit, y:
git push -u origin mejora-notas
gh pr create --fill
gh pr view --web
En el navegador, mira la pestaña Files changed: es el diff presentado para revisión. Pulsa Merge pull request. Después, en la terminal:
git switch main
git pull
git branch -d mejora-notas
Parte 5 · Claude Code con tus reglas (sesión 6 · 1,5 h)
Tu CLAUDE.md, escrito por ti. Crea CLAUDE.md en la raíz del taller. Usa esto como punto de partida, pero cámbialo con tus palabras:
# Contexto
Soy principiante absoluto aprendiendo desarrollo web full stack (Fase 1 de mi roadmap).
Este repositorio es mi taller de prácticas: no hay código, solo notas en Markdown.
# Cómo quiero que trabajes
- Responde en español.
- Antes de cambiar nada, dime qué vas a hacer y por qué.
- Explica en una línea cada comando que propongas.
- No hagas commits, push ni ningún comando de Git: los hago yo.
- No uses sudo ni borres archivos sin preguntarme.
- Una cosa cada vez: cambios pequeños.
Commit: git commit -m "Añade CLAUDE.md con mis reglas de trabajo" (después del git add, claro).
Arrancar Claude en el sitio correcto:
cd ~/Work/taller
git status
claude
git status tiene que decir que todo está limpio. Esa es tu red.
Ronda 1 · Solo leer. Pídele:
Explícame qué hay en este repositorio y qué es cada archivo. No cambies nada.
Comprueba que ha respetado tu CLAUDE.md (idioma, no tocar nada).
Ronda 2 · Un cambio bueno. Pídele:
Añade a notas/comandos.md una sección con los 4 comandos de Git que más voy a usar y una línea explicando cada uno.
Cuando termine, sal de Claude o abre otra terminal y aplica el ciclo de seguridad:
git status
git diff
¿Ha tocado solo ese archivo? ¿Entiendes cada línea? ¿Es correcto lo que explica? Si sí: git add y commit tú.
Ronda 3 · Un cambio malo, a propósito. Pídele:
Reescribe el README entero en inglés y crea un archivo notas/ideas.md con diez ideas de proyectos.
Cuando termine:
git status
Verás el README modified y notas/ideas.md como untracked. Ahora deshaz todo:
git restore README.md
git clean -n
git clean -n solo enseña lo que borraría. Si la lista es exactamente notas/ideas.md, ejecuta git clean -fd. Después:
git status
Limpio. El README, en español, como estaba. Esto es lo que hará posible todo lo demás del roadmap.
Parte 6 (opcional, muy recomendable) · Versionar este vault
Tus apuntes merecen la misma red de seguridad, y una copia en la nube. Desde la terminal:
cd ~/Documents/web-development
pwd
Crea un archivo .gitignore en el vault con estas líneas (lo que Obsidian cambia constantemente y no aporta nada):
.obsidian/workspace.json
.obsidian/workspace-mobile.json
.trash/
Y:
git init
git add .
git commit -m "Vault inicial: roadmap, fases 0-1 y glosario"
gh repo create apuntes-fullstack --private --source=. --remote=origin --push
Criterios de aceptación
- Git configurado: rama inicial
main, editor VS Code, nombre y email visibles -
~/Work/tallercreado desde la terminal, fuera del vault - He deshecho un destrozo con
git restorey sé explicar qué ha pasado - Un merge con conflicto provocado y resuelto por mí
- Repositorio privado en GitHub, con el README como portada
- Un cambio hecho en la web de GitHub y traído con
git pull - Un issue cerrado automáticamente desde un commit
- Un pull request abierto, revisado en Files changed y fusionado
-
CLAUDE.mdescrito con mis palabras, y Claude lo ha respetado - Un cambio de Claude revisado con
git diffy confirmado por mí - Un cambio malo de Claude deshecho, incluido un archivo nuevo, sin perder nada
- Al menos 6 commits con mensajes que explican qué cambió (
git log --oneline) - (Opcional) El vault versionado en un repositorio privado
Cómo delegarlo (y qué no)
Sí: pedir explicaciones de cualquier comando o error, con los prompts de la Fase 1 (apartado 7) o de Prompts para Claude. Y, en la parte 5, los tres encargos de las rondas.
No: que Claude ejecute los comandos de Git por ti en este proyecto. Si te lo propone, dile que no: es justo lo que estás aprendiendo.
Cómo verificar que está bien
git log --oneline→ ¿cada mensaje se entiende sin abrir el commit?gh repo view --web→ ¿dice Private? ¿Se ve bien el README?- Tapa la nota y explica en voz alta el ciclo de seguridad de la ronda 3, incluido por qué hicieron falta dos comandos distintos para deshacerlo todo.
Qué has aprendido al terminarlo
(Rellénalo tú en 3-4 líneas.)