lección 1
Instalar Git y hacer tu primer commit
Antes de trabajar en equipo necesitas la herramienta: instala Git, entiende el control de versiones y haz tu primer commit.
⏱ 50 min
¿Alguna vez has tenido un archivo llamado "informe-final.docx", luego "informe-final-v2.docx", luego "informe-final-v2-corregido.docx", y finalmente "informe-final-v2-corregido-DEFINITIVO.docx"? Todos hemos pasado por eso. Es la forma primitiva de controlar versiones — y es un desastre total. Cuando trabajas solo ya es confuso, pero cuando trabajas con otras personas en el mismo proyecto, se convierte en una pesadilla.
Git existe para resolver exactamente este problema. Es una herramienta que guarda la historia completa de tu proyecto — cada cambio, cuándo se hizo, quién lo hizo y por qué. Es como tener un botón de "deshacer" infinito para todo tu proyecto, con la capacidad de volver a cualquier punto del pasado. Los videojuegos tienen puntos de guardado; Git es el sistema de "save points" de tu código.
### La historia de Git: por qué un finlandés enfadado cambió el mundo
Git fue creado en 2005 por Linus Torvalds — el mismo tipo que creó Linux. Linus necesitaba una forma de gestionar los cambios de miles de programadores trabajando a la vez en el código de Linux, y la herramienta que venía usando el proyecto dejó de estar disponible de un día para otro. Las alternativas libres que había entonces eran lentas y centralizadas: cada operación pasaba por un servidor.
Así que se puso a escribir la suya. El primer commit de Git es del 7 de abril de 2005, y está hecho ya con el propio Git. En unos diez días de trabajo estaba lo bastante terminado como para llevar con él el código del kernel de Linux. Hoy es la herramienta de control de versiones más usada del planeta, y no hay alternativa seria.
### Instalación de Git
Instalar Git es sencillo en ambos sistemas. Sigue las instrucciones para tu sistema operativo:
1# 🟦 Windows:2# Opción 1: Descarga el instalador desde https://git-scm.com/download/win3# Ejecuta el .exe y acepta los valores por defecto.4# IMPORTANTE: en "Adjusting your PATH", elige "Git from the command line and also from 3rd-party software"56# Opción 2: Si tienes winget (Windows 10+):7winget install Git.Git89# 🍎 Mac:10# Opción 1: Ejecuta esto y macOS te ofrecerá instalar las Command Line Tools:11git --version12# Si no está instalado, aparecerá un diálogo para instalarlo1314# Opción 2: Si tienes Homebrew:15brew install git
Instalación de Git. En Mac a veces ya viene preinstalado.
Después de instalar, cierra y vuelve a abrir tu terminal (o la terminal integrada de VS Code) y verifica:
1# Verifica que Git está instalado (funciona en ambos):2git --version3# Debería mostrar: git version 2.43.0 (o similar)
Si ves un número de versión, Git está listo.
### Configuración inicial (una sola vez)
Git necesita saber quién eres para firmar tus cambios. Es como escribir tu nombre en un contrato — cada cambio que guardes llevará tu firma. Ejecuta estos dos comandos (solo una vez, en cualquier terminal):
1# Funciona igual en ambos sistemas:2git config --global user.name "Tu Nombre"3git config --global user.email "tu@email.com"45# Para que los repos nuevos usen "main" (como GitHub):6git config --global init.defaultBranch main78# Verificar la configuración:9git config --global --list10# Debería mostrar tu nombre, email y defaultBranch
Configuración obligatoria. Usa el email que usarás en GitHub más adelante.
Consejo de senior: usa un email que planees mantener a largo plazo. Yo cometí el error de usar mi email de la universidad — cuando me gradué perdí acceso y todos mis commits antiguos aparecen con un email muerto. Usa tu email personal o uno profesional que controles tú.
### Los 3 conceptos clave de Git
Git tiene una filosofía que necesitas entender antes de escribir comandos. Piensa en ello como preparar un paquete para enviar por correo:
- 01.Working directory (tu escritorio): es tu carpeta de proyecto. Los archivos que editas, creas o borras. Es tu zona de trabajo normal.
- 02.Staging area (la caja de envío): cuando decides qué cambios quieres guardar, los "metes en la caja" con git add. No todo lo que cambias tiene que ir en el mismo envío.
- 03.Repository (la oficina de correos): cuando haces git commit, sellas la caja y la envías al historial. Ese punto queda guardado para siempre. Puedes volver a él cuando quieras.
### Tu primer repositorio: git init
Vamos a crear tu primer repositorio Git. Un repositorio es simplemente una carpeta que Git está vigilando — registra cada cambio que hagas dentro de ella. Para "activar" Git en una carpeta, usas git init:
1# Funciona igual en ambos sistemas:2mkdir mi-primer-repo3cd mi-primer-repo4git init5# Resultado: Initialized empty Git repository in .../mi-primer-repo/.git/
git init convierte una carpeta normal en un repositorio Git.
Git ha creado una carpeta oculta llamada .git/ dentro de tu proyecto. Ahí es donde guarda toda la historia. NUNCA toques esa carpeta manualmente — déjala en paz y deja que Git la gestione.
### git status: tu brújula en Git
El comando más importante mientras estás aprendiendo Git es git status. Te dice exactamente en qué estado está cada archivo: si está modificado, si está preparado para el commit, si Git lo está ignorando. Ejecútalo constantemente — es tu mapa:
1# Dentro de mi-primer-repo:2git status3# Resultado: On branch main, No commits yet, nothing to commit45# Ahora crea un archivo:6echo "# Mi Primer Proyecto" > README.md78git status9# Resultado: Untracked files: README.md10# Git ve el archivo pero aún no lo "sigue"
git status es tu brújula. Úsalo ANTES y DESPUÉS de cada operación.
### git add: preparar cambios
Cuando quieres incluir un cambio en tu próximo "punto de guardado", usas git add. Esto mueve el archivo del working directory a la staging area — lo metes en la caja de envío:
1# Añadir un archivo específico:2git add README.md34# Añadir TODOS los archivos modificados:5git add .67# Verificar qué está preparado:8git status9# Resultado: Changes to be committed: new file: README.md
git add = "quiero incluir este cambio en mi próximo punto de guardado".
### git commit: crear un punto de guardado
El commit es el acto de guardar. Sellas la caja y la archivas permanentemente. Cada commit necesita un mensaje que explique QUÉ hiciste y POR QUÉ. Es como escribir una nota adhesiva en la caja antes de enviarla:
1# Crear tu primer commit:2git commit -m "Primer commit: añadir README con título del proyecto"34# Verificar:5git status6# Resultado: nothing to commit, working tree clean78# Ver el historial:9git log --oneline10# Resultado: a1b2c3d Primer commit: añadir README con título del proyecto
git commit -m "mensaje" = guardar con una nota explicativa.
Consejo de senior: los mensajes de commit son IMPORTANTÍSIMOS. "cambios" o "fix" no dicen nada. "Añadir validación de email en el formulario de registro" dice exactamente qué pasó. Tu yo del futuro (o tu equipo) leerá estos mensajes para entender la historia del proyecto. Escríbelos como si le hablaras a un compañero que no estaba presente cuando hiciste el cambio.
Error de principiante nº1: hacer git commit sin haber hecho git add antes. Git te dirá "nothing to commit". Recuerda: primero git add (meter en la caja), luego git commit (sellar y archivar). Siempre git status entre medias para verificar.
Si se te olvida el -m y escribes sólo git commit, Git abre un editor de texto dentro de la terminal para que escribas ahí el mensaje. Normalmente es vim, y la primera vez asusta: la pantalla se llena, no puedes escribir y no hay ningún botón de cerrar. Para salir de vim: pulsa Esc, escribe :q! y pulsa Enter. Eso cancela el commit y te devuelve la terminal. Vuelve a intentarlo con el -m. Si prefieres que no te vuelva a pasar, dile a Git que use VS Code como editor: git config --global core.editor "code --wait" Y si alguna vez necesitas escribir un mensaje largo de varias líneas, ahí es cuando git commit sin -m es lo cómodo: se abre VS Code, escribes con calma, guardas y cierras la pestaña.
### Flujo completo: editar → add → commit
Veamos el flujo completo que repetirás cientos de veces en tu carrera. Vamos a hacer un segundo commit añadiendo más contenido:
1# 1. Editar archivos (crear algo nuevo)2echo "Este proyecto es para aprender Git" >> README.md3echo "print('hola mundo')" > script.py45# 2. Ver qué cambió6git status7# modified: README.md, untracked: script.py89# 3. Preparar los cambios10git add .1112# 4. Verificar qué está en la caja13git status14# Changes to be committed: modified README.md, new file script.py1516# 5. Guardar el punto de guardado17git commit -m "Añadir descripción al README y script inicial"1819# 6. Ver la historia20git log --oneline21# a1b2c3d Añadir descripción al README y script inicial22# f4e5d6a Primer commit: añadir README con título del proyecto
El ciclo de Git: edit → status → add → status → commit. status es tu verificación constante.
### El archivo .gitignore: decirle a Git qué ignorar
No todo en tu proyecto debería guardarse en Git. Archivos temporales, contraseñas, carpetas enormes de dependencias... El archivo .gitignore le dice a Git: "ignora estos archivos, no los sigas". Se crea en la raíz del proyecto:
1# Crear .gitignore (funciona en ambos sistemas):2echo "# Archivos a ignorar" > .gitignore3echo "*.tmp" >> .gitignore4echo "node_modules/" >> .gitignore5echo ".env" >> .gitignore6echo "__pycache__/" >> .gitignore78# Añadir y guardar:9git add .gitignore10git commit -m "Añadir .gitignore con reglas básicas"
.gitignore = lista de cosas que Git debe pretender que no existen.
## ejercicios
Crea tu primer repositorio
Crea una carpeta "proyecto-datos", inicializa Git, crea un README.md y haz tu primer commit. Al final, la comprobación debe dar: 1 fichero vigilado y 1 commit.
Haz 3 commits seguidos
Tres commits atómicos: estructura, script y .gitignore. Al final: 3 ficheros vigilados y 3 commits.
Sé detective con git status
Tu compañero te deja el repositorio a medias. Lee la salida de git status y contesta: ¿qué está preparado, qué no, qué entra en el commit?
💡 Resultado esperado
OK modificado sin preparar OK en staging OK ficheros que entran OK comando que falta
Escribe las reglas de un .gitignore
Escribe las reglas de un .gitignore para un proyecto Python y comprueba fichero a fichero cuál se ignora y cuál no.
💡 Resultado esperado
VIGILADO analisis.py ignorado analisis.pyc ignorado __pycache__/analisis.cpython-311.pyc ignorado .venv/bin/python
Configura .gitignore para un proyecto Python
Crea un .gitignore que ignore: *.pyc, __pycache__/, .venv/, .env y *.tmp. La comprobación creará basura y verificará que Git la ignora.
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...