Git and GitHub from scratch

Version control explained with a simulator where you run Git commands and watch the repository change in real time.

Git es un sistema de control de versiones: guarda una foto (un commit) de tu proyecto cada vez que se lo pides, para que puedas volver atrás, ver qué cambió y trabajar en paralelo sin pisar a nadie. GitHub es una web donde alojas esos repositorios en la nube y colaboras con otras personas.

Install and configure

git --version                       # comprobar que está instalado
git config --global user.name  "Tu Nombre"
git config --global user.email "tu@correo.com"

Descárgalo de git-scm.com. La configuración del nombre y el correo solo se hace una vez: aparecerán en cada commit que hagas.

The three states

Todo en Git se mueve entre tres zonas. Entenderlas es el 80 % de Git:

Git simulator

Escribe comandos y pulsa Enter (o usa los botones). El panel de la derecha muestra en todo momento las tres zonas, la rama actual y el grafo de commits. Empieza con git init.

Branches

Una rama es una línea de trabajo independiente. Trabajas en una rama para una función nueva; cuando está lista, la fusionas (merge) en la rama principal (main). Así main siempre queda estable.

git branch login          # crear rama "login"
git checkout login        # cambiar a ella   (o: git switch login)
# ... trabajas y haces commits ...
git checkout main         # volver a main
git merge login           # traer los cambios de login a main
git branch -d login       # borrar la rama ya fusionada

GitHub: the remote repository

GitHub guarda una copia de tu repo en la nube. El flujo con un repo remoto:

.gitignore

Un archivo llamado .gitignore le dice a Git qué NO versionar: dependencias, credenciales, archivos generados.

node_modules/
vendor/
.env
*.log
/dist

Typical day-to-day workflow

git pull                          # 1. traer lo último
git checkout -b arreglo-boton     # 2. rama para tu tarea
#    ... editas archivos ...
git add .                         # 3. preparar los cambios
git commit -m "Arregla el botón de enviar"   # 4. guardar
git push -u origin arreglo-boton  # 5. subir a GitHub
#    6. abrir un Pull Request en GitHub para revisión

Check what you've learned