GitHub en carne viva: tu web, versionada por ti
Hoy tu web deja de vivir solo en tu portátil. Cada uno sale de clase con su cuenta de GitHub, su Git configurado y autenticado, su repositorio enlazado a la web que empezaste el viernes, varios commits de verdad, una máquina del tiempo usada, y dos diseños distintos en dos ramas. Con una norma que no se rompe hoy: todas las dudas se preguntan primero a los modelos del centro.
Git es un grafo de bolitas, no una carpeta con versiones. Cada commit es una bola; las flechas marcan hacia dónde avanza la historia; una píldora (HEAD) dice dónde estás. Todo lo de hoy son bolitas, flechas y dos o tres palabras: mira cada dibujo antes de tocar el teclado y sabrás qué tecla pulsar.
- Esta página te dice qué conseguir, no cómo. Los comandos no vienen escritos aquí a propósito: los consigue cada uno preguntando a los modelos del centro.
- Con una excepción, la de hoy: la configuración inicial y la autenticación sí vienen escritas, comando a comando, en las dos secciones de abajo. Pelearse a ciegas con un token no enseña nada, y el curso entero depende de que esto quede bien montado. Todo lo demás —add, commit, ramas, merge— lo sigues preguntando tú.
- Preguntas al chat del centro, lees lo que te responde, y lo tecleas tú en tu terminal, entendiendo qué haces. Hoy no trabajamos de forma agéntica: la IA te guía, el que pulsa las teclas eres tú.
- Comprueba cada paso con el recuadro verde de la misión antes de seguir. Si no está el visto, no avances: pregunta de nuevo, más concreto.
- Si te atascas de verdad tras dos preguntas, levanta la mano y te ayudo. Pero quien te crea la cuenta o el repo sin que lo hayas hecho tú no aprende la sesión: el objetivo del curso es que sepas hacerlo, no que lo tengas hecho.
Qué es Git, de verdad
La mitad de los líos de hoy vienen de creer que Git y GitHub son la misma cosa. No lo son, y no se parecen: uno es un programa y el otro es una web. Empecemos por el programa.
- Es un programa que se instala en tu ordenador. Lo escribió Linus Torvalds en 2005, el mismo que hizo Linux, porque necesitaba controlar los cambios de un proyecto donde miles de personas tocan el mismo código a la vez. Se maneja escribiendo comandos.
- No tiene cuenta, ni contraseña, ni necesita internet. Con el wifi caído puedes hacer commits toda la tarde. Git no sabe quién eres ni le importa: eso llega después, y es de GitHub.
- Lo que hace es guardar fotos completas de tu proyecto. Cada vez que le dices «guarda», Git congela cómo estaba todo en ese instante y le pone una etiqueta única de 40 caracteres —el hash, del que solemos ver solo los siete primeros:
a1b2c3d—. Tu historia es la cadena de esas fotos, y puedes volver a cualquiera. - Vive en una carpeta oculta llamada .git, dentro de tu proyecto. Eso es el repositorio: copia la carpeta del proyecto en un pendrive y te llevas la historia entera; borra
.gity tus ficheros siguen ahí, pero la historia desaparece para siempre. - Es «distribuido». Cada copia del repositorio es un repositorio completo, con toda la historia dentro, no un trozo que depende de un servidor. Por eso no hay un «Git central» al que pedir permiso: hay copias que se ponen de acuerdo.
Las cuatro paradas de un cambio (esto es lo que más cuesta)
Cuando cambias un color en tu CSS, ese cambio no salta directo a GitHub: hace cuatro paradas, y cada salto lo provoca un comando distinto. Entender esto es entender Git entero; la mayoría de los «no me sube nada» son un cambio dormido en la parada equivocada.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
git add no guarda, solo apunta lo que quieres guardar. git commit guarda, pero solo en tu portátil. git push es el único que sale a internet. Si haces commit y cierras el portátil, en GitHub no hay nada: no es un fallo, es que te falta una parada.Qué es GitHub, de verdad
GitHub es una web y una empresa: github.com, nacida en 2008 y comprada por Microsoft en 2018. Su trabajo es guardar repositorios de Git en sus servidores y montar herramientas alrededor. Es un sitio, no una tecnología —hay otros que hacen lo mismo: GitLab, Bitbucket, Codeberg, o un servidor tuyo—. Podrías usar Git toda tu vida sin abrir GitHub jamás.
Entonces, ¿para qué lo usamos? Porque encima de Git añade todo esto, que Git no tiene:
Copia remota
Tu historia deja de vivir solo en tu portátil. Si se rompe, se moja o lo pierdes, tu trabajo sigue ahí.
Pull requests
No existen en Git: son invento de GitHub. Propones un cambio, otra persona lo revisa y decide si entra.
Issues y Projects
Tareas, errores y tableros pegados al código, no en otra herramienta aparte.
Revisión de código
Comentarios línea a línea sobre un cambio concreto. Así se aprende de verdad en una empresa.
Actions
Robots que en cada push ejecutan tus pruebas o despliegan la web sin que tú hagas nada.
Pages
Publicar una web estática gratis en tuusuario.github.io. Literalmente, la web que estás haciendo.
Perfil público
Tu portafolio: repositorios, el cuadrito verde de contribuciones y lo que enseñas de ti.
Cuentas y permisos
Quién puede escribir dónde. Aquí nacen los usuarios, el doble factor y los tokens de hoy.
Las dos herramientas, una al lado de la otra
| Git | GitHub | |
|---|---|---|
| Qué es | Un programa instalado en tu ordenador | Una web y una empresa (github.com) |
| Quién y cuándo | Linus Torvalds, 2005, para el kernel de Linux | GitHub Inc., 2008; de Microsoft desde 2018 |
| ¿Necesita internet? | No. Sin wifi puedes trabajar toda la tarde | Sí: es un servidor al que te conectas |
| ¿Usuario y contraseña? | No tiene. No sabe quién eres | Sí: cuenta, doble factor y tokens |
| Dónde guarda tu historia | En la carpeta oculta .git de tu proyecto | En sus servidores, en una copia del repositorio |
| Qué te da | Historial, ramas, fusiones, volver atrás | Copia remota, pull requests, issues, Actions, Pages, perfil |
| ¿Se puede usar sin el otro? | Sí, perfectamente y para siempre | No: GitHub guarda repositorios de Git |
| Se maneja con | Comandos: add, commit, branch, merge | Botones en la web; push y pull hablan con él |
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
Configuración global: dile a Git quién eres
Antes del primer commit hay que configurar Git en ese ordenador. Son dos cosas: quién eres (para que pueda firmar tus commits) y cómo quieres que se comporte (para que no te sorprenda). Se hace una vez y vale para todos tus repositorios.
Los tres niveles: system, global y local
Git lee su configuración de tres sitios, del más general al más concreto, y siempre gana el más cercano al repositorio:
| Nivel | Fichero | A quién afecta |
|---|---|---|
| --system | /etc/gitconfig | A todos los usuarios del ordenador. Casi nunca se toca. |
| --global | ~/.gitconfig | A ti, en ese ordenador, en todos tus repos. Es el que vas a usar hoy. |
| (sin nada) | .git/config | Solo a ese repositorio. Gana sobre los otros dos. |
--global: se la quedas puesta al siguiente, y sus commits saldrán firmados con tu nombre. En un equipo que no es tuyo, configura la identidad dentro de tu repo, sin --global.Los cinco comandos, uno a uno
Cámbialos por tus datos y pégalos en la terminal, línea a línea. Las comillas son necesarias cuando el valor lleva espacios.
git config --global user.name "Ana García" git config --global user.email "ana@ejemplo.com" git config --global init.defaultBranch main git config --global core.editor "nano -w" git config --global pull.rebase false
user.name— tu nombre y apellido, con espacios y acentos si quieres. No es tu usuario de GitHub: es la firma que aparecerá en cada commit. Escríbelo como te gustaría que lo lea quien te esté planteando contratarte, porque es exactamente quien lo va a leer.user.email— tiene que ser uno de los correos de tu cuenta de GitHub, de los que aparecen verificados en Settings → Emails. Es lo que enlaza cada commit con tu perfil: si pones otro correo, los commits salen con un muñequito gris, no llevan a tu cuenta y no cuentan en tu cuadrito verde de contribuciones.init.defaultBranch main— que los repositorios nuevos nazcan con la rama llamadamain. GitHub usamain; Git venía de fábrica conmaster. Esta línea te ahorra el errorsrc refspec main does not match any.core.editor— cuando Git necesite que escribas un texto largo (el mensaje de una fusión, por ejemplo) abrirá un editor dentro de la terminal. Sin esta línea abre vim, y ahí es donde se queda encallada media clase. Connanose sale con Ctrl+O, Enter, Ctrl+X. Si prefieres VS Code:"code --wait".pull.rebase false— le dices de antemano qué hacer cuando tu copia y la de GitHub han avanzado cada una por su lado:falsesignifica «fúndelas». Sin esta línea, el día que pase, Git se planta y te suelta un aviso dedivergent branchesen vez de hacer nada.
El correo sin enseñar tu correo
Cuidado con una cosa: el correo del commit se publica y queda visible para cualquiera que mire tu repositorio. Si no quieres que tu correo real acabe en manos de un robot de spam, GitHub te regala uno de mentira que sigue enlazando con tu perfil. En Settings → Emails marcas Keep my email addresses private y te dan una dirección con esta pinta, que es la que pones en user.email:
git config --global user.email "12345678+anagarcia@users.noreply.github.com"
Comprobar que ha quedado bien
git config --global --list git config --list --show-origin
El primero tiene que enseñar, como mínimo, tu user.name y tu user.email. El segundo dice además de qué fichero sale cada línea: es el comando con el que se descubre, en dos segundos, que el portátil traía puesta la configuración de otra persona. Y si estás dentro de un repo, git config user.email a secas te dice el que se está aplicando ahí de verdad, contando el local.
user.name y user.email son etiquetas: Git no las comprueba con nadie y no dan acceso a nada. Poner ahí tu correo no te conecta con GitHub ni te deja subir nada. Que dos cosas te pidan un correo no significa que sean la misma cosa. El permiso para subir se pide aparte, y va en la sección siguiente.Usuario y contraseña: qué escribir exactamente
Aquí es donde se atasca media clase todos los años, así que vamos despacio. La clave es ver que Git te pide dos cosas distintas en dos momentos distintos: la identidad, al hacer commit, y las credenciales, al hacer push. No son lo mismo y no se escriben igual.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
El momento exacto: qué sale en la terminal
Cuando haces tu primer git push por HTTPS, la terminal se para y te enseña estas dos líneas:
Username for 'https://github.com': Password for 'https://anagarcia@github.com':
Username
Tu nombre de usuario de GitHub. El que sale en la dirección de tu perfil: si tu perfil es github.com/anagarcia, escribes anagarcia.
No el correo. No tu nombre y apellido. No lo que pusiste en user.name.
Password
Un token de acceso personal: una tira larga de letras y números que empieza por ghp_. Lo generas tú en GitHub, en un minuto, y lo pegas aquí.
NO la contraseña con la que entras en github.com. GitHub dejó de aceptarla para Git el 13 de agosto de 2021: por muy bien escrita que esté, siempre va a fallar.
Cómo se saca el token, paso a paso
- 1 · Entra en github.com con tu cuenta.
- 2 · Pulsa tu foto, arriba a la derecha, y entra en Settings.
- 3 · En la columna de la izquierda, baja hasta el final: Developer settings.
- 4 · Personal access tokens → Tokens (classic) → botón Generate new token (classic).
- 5 · En Note, un nombre para acordarte de para qué es:
portatil-aula. En Expiration, 90 días (lo que dura esta parte del curso). - 6 · En Select scopes, marca la casilla repo, la primera del todo: con eso puedes leer y escribir en tus repositorios. No marques nada más; un token da exactamente los permisos que le pongas, y de más no hace falta.
- 7 · Abajo del todo, Generate token.
- 8 · Copia el token ahora, con el botón de copiar. En cuanto salgas de esa página no se vuelve a enseñar nunca. Si lo pierdes no es un drama: se borra ese y se genera otro.
Para no volver a escribirlo cada vez
Git puede recordar la credencial. El credential helper que toca depende de tu sistema:
# Windows (viene con Git for Windows) git config --global credential.helper manager # macOS (lo guarda en el Llavero) git config --global credential.helper osxkeychain # Linux: en tu portátil, lo recuerda para siempre... git config --global credential.helper store # ...y en uno compartido, mejor que lo olvide en una hora: git config --global credential.helper 'cache --timeout=3600'
- Windows. El Git Credential Manager ya viene instalado con Git. La primera vez abre una ventana del navegador para que inicies sesión en GitHub —ahí sí usas tu cuenta normal, con el doble factor— y él se fabrica el token solito. Si te sale esa ventana, no te has equivocado: es lo normal en Windows.
- Linux con
store. Guarda el token en texto plano en~/.git-credentials. En tu portátil vale; en uno compartido, ni se te ocurra: el siguiente que lo use puede leerlo y subir cosas con tu nombre.
🔒 Alternativa para quien acabe pronto: claves SSH (y no volver a escribir nada nunca)
En vez de usuario y token, tu ordenador y GitHub se reconocen por un par de claves. Se configura una vez y ya no pide nada más:
ssh-keygen -t ed25519 -C "ana@ejemplo.com" cat ~/.ssh/id_ed25519.pub
Copia la línea entera que sale del segundo comando y pégala en GitHub, en Settings → SSH and GPG keys → New SSH key. Compruébalo con ssh -T git@github.com: tiene que contestarte con un Hi anagarcia!. Después, cambia la dirección de tu repo a la versión SSH:
git remote set-url origin git@github.com:anagarcia/mi-web.git
La clave privada es el fichero sin .pub y no sale de tu ordenador jamás; la que se sube es siempre la que acaba en .pub. Para saber por dónde estás hablando en cualquier momento: git remote -v. Si la dirección empieza por https:// te pedirá usuario y token; si empieza por git@github.com: usará la clave.
Los errores que vais a ver hoy (y qué significa cada uno)
Los mensajes de Git dan miedo por la pinta, pero casi todos dicen exactamente lo que pasa. Aquí están los que más salen, con el texto tal cual aparece. Búscalo, ábrelo, arréglalo. Y cuando te salga uno que no esté aquí: cópialo entero y pregúntaselo a la IA del centro, que para eso está.
git status (en qué zona está cada cambio), git remote -v (a qué repositorio estás hablando) y git config --global --list (con qué identidad). Nueve de cada diez veces, el fallo se ve en uno de los tres.No me deja ni empezar (configuración)
Author identity unknown — *** Please tell me who you are. fatal: unable to auto-detect email address
Qué ha pasado: No has configurado user.name y user.email en este ordenador. Git se niega a firmar un commit sin saber de quién es.
Cómo se arregla: Pones tu identidad global y repites el commit: el que falló no se ha perdido, tus cambios siguen preparados.
git config --global user.name "Ana García" git config --global user.email "ana@ejemplo.com"
fatal: not a git repository (or any of the parent directories): .git
Qué ha pasado: Estás ejecutando Git en una carpeta que no es un repositorio: o te has equivocado de carpeta, o nunca llegaste a hacer git init.
Cómo se arregla: Mira dónde estás y si hay un .git ahí dentro. Si es la carpeta buena y no lo hay, la conviertes en repositorio.
pwd ls -a git init
Se abre una pantalla llena de ~ y no hay forma de salir
Qué ha pasado: No es un error: es vim, el editor que Git trae de fábrica, pidiéndote el mensaje de una fusión.
Cómo se arregla: Pulsa Esc, escribe :wq y Enter (guardar y salir). Y para que no vuelva a pasarte, cambia el editor por nano.
git config --global core.editor "nano -w"
hint: You have divergent branches and need to specify how to reconcile them.
Qué ha pasado: Tu copia y la de GitHub han avanzado cada una por su lado, y Git no quiere decidir por ti si fusionar o reescribir.
Cómo se arregla: Le dices de una vez cómo quieres que lo resuelva y repites el pull.
git config --global pull.rebase false git pull
No me deja subir (autenticación)
remote: Support for password authentication was removed on August 13, 2021. fatal: Authentication failed for 'https://github.com/anagarcia/mi-web.git/'
Qué ha pasado: Has escrito la contraseña con la que entras en github.com. Para Git ya no vale, y no va a valer por mucho que la repitas.
Cómo se arregla: Generas un token de acceso personal y lo pegas donde pide Password. Tienes los ocho pasos en la sección de arriba.
remote: Invalid username or password. fatal: Authentication failed
Qué ha pasado: O el usuario está mal escrito (es el de github.com/TUUSUARIO, no tu correo), o el token está mal pegado, o ha caducado.
Cómo se arregla: Comprueba el usuario mirando la dirección de tu perfil, y si tienes la menor duda del token, genera uno nuevo: no cuesta nada.
remote: Permission to anagarcia/mi-web.git denied to otroalumno. fatal: unable to access '...': The requested URL returned error: 403
Qué ha pasado: El clásico del aula: el ordenador tiene guardadas las credenciales de quien lo usó antes que tú, así que está intentando subir con la cuenta de otra persona.
Cómo se arregla: Hay que borrar la credencial guardada. En Windows, busca «Administrador de credenciales» → Credenciales de Windows → borra las entradas git:https://github.com. En macOS, Acceso a Llaveros → busca github.com → borrar. En Linux, quita la línea de github.com de ~/.git-credentials. El siguiente push te volverá a pedir usuario y token: los tuyos.
remote: Repository not found. fatal: repository 'https://github.com/anagarcia/mi-web.git/' not found
Qué ha pasado: O el nombre está mal escrito (Git distingue mayúsculas, minúsculas y guiones), o el repositorio es privado y estás autenticado como otra persona, o nunca llegaste a crearlo.
Cómo se arregla: Mira a dónde estás apuntando y compáralo con la dirección que sale en el botón verde Code de tu repositorio en GitHub. Si no coincide, la corriges.
git remote -v git remote set-url origin https://github.com/anagarcia/mi-web.git
git@github.com: Permission denied (publickey). fatal: Could not read from remote repository.
Qué ha pasado: Estás usando SSH pero GitHub no reconoce tu clave: o no la has subido, o subiste la privada por error, o la subiste a otra cuenta.
Cómo se arregla: Pruebas la conexión y, si no te saluda por tu nombre, subes el contenido del fichero que acaba en .pub a Settings → SSH and GPG keys.
ssh -T git@github.com cat ~/.ssh/id_ed25519.pub
Pego el token en Password y no aparece nada en la pantalla
Qué ha pasado: No es un error. Los terminales ocultan lo que escribes en una contraseña: ni puntos, ni asteriscos, ni cursor que avance.
Cómo se arregla: Pega y pulsa Enter a ciegas. Si al pegar no pasa nada de nada, prueba Ctrl+Shift+V (Linux), clic derecho (Git Bash en Windows) o Cmd+V (Mac).
Sube, pero hay algo raro
error: remote origin already exists.
Qué ha pasado: Ya habías enlazado este repositorio con un remoto, seguramente equivocado, y Git no lo pisa sin permiso.
Cómo se arregla: Miras a dónde apunta y le cambias la dirección en vez de añadir otro.
git remote -v git remote set-url origin https://github.com/anagarcia/mi-web.git
error: src refspec main does not match any — error: failed to push some refs
Qué ha pasado: O todavía no has hecho ningún commit, y no hay nada que subir, o tu rama se llama master y estás intentando subir una rama main que no existe.
Cómo se arregla: Miras si hay commits y cómo se llama tu rama; si hace falta, la renombras a main y vuelves a subir.
git log --oneline git branch git branch -M main git push -u origin main
! [rejected] main -> main (fetch first) — hint: Updates were rejected because the remote contains work that you do not have locally.
Qué ha pasado: En GitHub hay un commit que tú no tienes: casi siempre, el README que creaste al hacer el repositorio marcando «Add a README».
Cómo se arregla: Te traes ese commit y colocas los tuyos encima. Nunca --force en un repositorio compartido: borrarías el trabajo de otro.
git pull --rebase origin main git push -u origin main
Mis commits salen con un muñequito gris y no cuentan en mi perfil
Qué ha pasado: El correo con el que firmas no es ninguno de los que tiene tu cuenta de GitHub, así que GitHub no sabe que esos commits son tuyos.
Cómo se arregla: Mira tus correos en Settings → Emails (o activa el noreply) y corrige la configuración. Los commits viejos se quedan como están; los nuevos ya saldrán bien.
git config --global user.email "12345678+anagarcia@users.noreply.github.com"
Mis commits aparecen firmados por un compañero
Qué ha pasado: Portátil compartido con la configuración global del anterior todavía puesta. Tus commits llevan su nombre y su correo.
Cómo se arregla: Compruebas quién está firmando y pones tu identidad antes de seguir (en un equipo que no es tuyo, sin --global).
git log --format="%an <%ae>" -5 git config user.name "Ana García" git config user.email "ana@ejemplo.com"
warning: LF will be replaced by CRLF in index.html
Qué ha pasado: No es un error: es Windows avisando de que cambia los saltos de línea del fichero al guardarlo.
Cómo se arregla: Nada. Puedes seguir tranquilamente.
Los cinco conceptos (esto sí te lo explico yo)
Lo importante de hoy no son los comandos —esos los pregunta cada uno a su IA—, es entender qué está pasando. Esto es lo que no puede hacer nadie por ti:
Repositorio«la carpeta con memoria»
Tu proyecto convertido en historia: una carpeta donde cada guardado queda registrado con autor, fecha y mensaje. Todo el trabajo del curso vivirá en repositorios.
Commit«un guardado con título»
Una foto de tu proyecto en un momento exacto, con un mensaje que dice qué cambió y por qué. Commits pequeños y frecuentes: uno por cosa, nunca «cosas varias».
Push / Pull«sincronizar con la nube»
Tu portátil y GitHub son dos copias de la misma historia. Push sube lo tuyo; pull baja lo que te falta. Nada mágico: dos películas sincronizadas.
Rama (branch)«un universo paralelo»
Una copia de tu historia donde experimentas sin tocar la principal. Si la idea funciona, se fusiona (merge); si no, se borra y no ha pasado nada.
Merge«la decisión final»
Traer una rama terminada a la principal. Es lo que harás al final de hoy cuando decidas qué diseño gana — y lo que haréis por PR en el proyecto en grupo.
Las misiones de hoy
1 Tu cuenta de GitHub
Crea tu cuenta en github.com con un usuario profesional: es lo primero que verá cualquiera de ti después del currículum, así que ni motes ni números random. Completa el perfil: foto o avatar serio y una bio de una línea («Estudiante de 1º DAM, IES Simarro. Construyo X»). Apúntate bien tu nombre de usuario: es la mitad de lo que te va a pedir la terminal dentro de un rato.
¿Problemas de registro o verificación? Es la única misión donde puede ayudarte una persona del centro si el correo del instituto te lo pone difícil: dímelo.
2 Git en tu portátil: identidad y llave
Comprueba que tienes Git con git --version (si no responde, instálalo: esto sí puedes preguntárselo a la IA). Después deja hechas las dos cosas de las secciones de arriba: la configuración global con tu nombre y el correo de tu cuenta de GitHub, y tu token de acceso personal generado y copiado en sitio seguro. Esta es la misión donde los comandos vienen escritos: úsalos, pero léelos antes de pegarlos.
git config --global --list enseña tu nombre y tu correo, y ese correo es uno de los que tienes en GitHub. Tienes el token guardado y sabes decir, sin mirar, en qué se diferencia de tu contraseña.Si el portátil no es tuyo, configura la identidad dentro de tu repo (sin --global) y usa el helper que olvida la credencial en una hora.
3 Tu primer repositorio, enlazado a tu web
Crea un repositorio nuevo llamado mi-web, público. Después tienes que hacer algo más fino que «subir ficheros»: enlazar la carpeta que ya tienes en el portátil (tu web del viernes) para que ese repositorio local pertenezca a GitHub, y subirla. Ahí hay conceptos nuevos (git init, remote, push) — pregunta a la IA del centro cómo enlazar una carpeta local existente con un repo recién creado y hazlo con sus instrucciones tecleadas por ti.
Consejo: crea el repositorio vacío, SIN marcar «Add a README». Te ahorras el rechazo del primer push que tienes explicado en los errores.
4 Commits honestos
Haz hoy como mínimo tres commits con mensajes que expliquen el porqué («añadida sección de contacto», «hero: dos columnas y foto», «parche: menú móvil»). Pregunta a tu IA cómo preparar el commit (qué ficheros se añaden) y cómo escribir el mensaje. Nada de «actualizo», «cambios» o «asdfgh».
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
5 La máquina del tiempo
Ahora vas a romper algo a propósito: cambia un color o borra un bloque de la web, déjalo feo. Después vuelve a la versión anterior usando el historial —pregunta a tu IA dos formas de hacerlo (la interfaz web y la terminal)— y usa la que te atrevas. Si el mensaje del commit es honesto, sabes exactamente a qué punto volver.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
6 Dos ramas, dos diseños
Crea dos ramas con dos diseños distintos de tu web: por ejemplo diseño-oscuro y diseño-minimal. En cada una cambia lo visual (colores, tipografía, disposición del hero) sin tocar la otra. Pregúntale a tu IA cómo crear una rama, cómo cambiarte de rama, y cómo guardar (commit) en la rama en la que estás. Cambiar de rama y refrescar la web es el momento «wow» de la sesión: la misma carpeta, dos webs distintas según el universo paralelo en el que te pongas.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
7 Elige tu diseño y fusiónalo a main
Mira los dos diseños con calma, enséñaselos a quien tengas al lado… y decide cuál gana. Fusiona la rama elegida a main (la fusión puede hacerse desde la terminal o desde la propia interfaz de GitHub — pregunta a tu IA y usa la que quieras). La otra rama se puede borrar: fue un experimento, y eso es exactamente para lo que sirven las ramas.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
8 Bonus: el repo de otro (ensayo del proyecto en grupo)
Si terminas: entra en el repo de un compañero, crea una rama ahí, mejora un detalle pequeño (un texto, un color), y abre una Pull Request a su main explicando qué propones. Es el ensayo general del proyecto final en grupo: allí todo cambio pasará por una PR revisada.
Desliza el diagrama de lado para verlo entero
Toca una bola o un comando del diagrama y aquí te cuento qué hizo Git en ese paso.
Cómo preguntar bien a la IA del centro
La calidad de lo que te responda depende de cómo lo preguntes. La fórmula: contexto + objetivo + restricción. Una plantilla para arrancar:
Estoy en 1º DAM usando Git por primera vez. Tengo una carpeta en mi portátil con index.html, style.css y script.js, y un repositorio vacío recién creado en GitHub llamado mi-web. Explícame paso a paso, comando a comando, qué debo escribir en la terminal para enlazar mi carpeta local con ese repositorio de GitHub y subir la web. Para cada comando, dime en una línea qué hace y qué veré si ha salido bien.
- Pide siempre el «qué hace cada comando»: si no lo sabes explicar, no lo teclees.
- Si te responde algo que no entiendes, no insistas con la misma pregunta: díselo literalmente («no entiendo el paso 2, explícamelo como si nunca hubiera usado la terminal»).
- Si algo sale mal, copia el mensaje de error exacto y pregúntale qué significa y qué hacer. Los errores de Git son mensajes legibles si preguntas: «conflict», «detached HEAD», «non-fast-forward»… son los cinco conceptos hablando.
- Ojo con una cosa: los modelos tienen fecha de caducidad en lo suyo, y en Git y GitHub las pantallas cambian. Si la IA te dice que pongas tu contraseña de GitHub en el push, te está dando una respuesta de hace años: la buena es la de esta página.
Checklist de entrega (antes de salir)
git config --global --list con tu nombre y el correo de tu cuenta de GitHub · ☐ Token generado, guardado, y sabes por qué no es tu contraseñami-web con tu web dentro (no solo el README) · ☐ ≥ 3 commits con mensajes que explican el porqué, y con tu avatar al ladomainPara la próxima sesión
- ☐ Tu repo enlazado y con push: no necesitas traer nada más — tu trabajo ya vive en la nube
- ☐ Tu token a mano (o el credential helper puesto): el día que no puedas subir, perderás media clase
- ☐ Curiosidad por el siguiente paso: la misma dinámica de hoy, pero con un agente escribiendo los comandos contigo (y tú decidiendo todos los commits)
