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 simultáneamente en el código de Linux. Las herramientas que existían eran lentas, centralizadas y poco fiables. Así que, en un arrebato de productividad legendario, escribió Git en unas pocas semanas. Hoy, 20 años después, es la herramienta de control de versiones más usada del planeta. 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/win
3# 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"
5
6# Opción 2: Si tienes winget (Windows 10+):
7winget install Git.Git
8
9# 🍎 Mac:
10# Opción 1: Ejecuta esto y macOS te ofrecerá instalar las Command Line Tools:
11git --version
12# Si no está instalado, aparecerá un diálogo para instalarlo
13
14# 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 --version
3# 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"
4
5# Verificar la configuración:
6git config --global --list
7# Debería mostrar tu nombre y email

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:

  1. 01.Working directory (tu escritorio): es tu carpeta de proyecto. Los archivos que editas, creas o borras. Es tu zona de trabajo normal.
  2. 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.
  3. 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.
Los tres estados de Git. Cada commit es un "punto de guardado" permanente.

### 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-repo
3cd mi-primer-repo
4git init
5# 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 status
3# Resultado: On branch main, No commits yet, nothing to commit
4
5# Ahora crea un archivo:
6echo "# Mi Primer Proyecto" > README.md
7
8git status
9# Resultado: Untracked files: README.md
10# 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.md
3
4# Añadir TODOS los archivos modificados:
5git add .
6
7# Verificar qué está preparado:
8git status
9# 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"
3
4# Verificar:
5git status
6# Resultado: nothing to commit, working tree clean
7
8# Ver el historial:
9git log --oneline
10# 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.

### 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.md
3echo "print('hola mundo')" > script.py
4
5# 2. Ver qué cambió
6git status
7# modified: README.md, untracked: script.py
8
9# 3. Preparar los cambios
10git add .
11
12# 4. Verificar qué está en la caja
13git status
14# Changes to be committed: modified README.md, new file script.py
15
16# 5. Guardar el punto de guardado
17git commit -m "Añadir descripción al README y script inicial"
18
19# 6. Ver la historia
20git log --oneline
21# a1b2c3d Añadir descripción al README y script inicial
22# 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" > .gitignore
3echo "*.tmp" >> .gitignore
4echo "node_modules/" >> .gitignore
5echo ".env" >> .gitignore
6echo "__pycache__/" >> .gitignore
7
8# Añadir y guardar:
9git add .gitignore
10git commit -m "Añadir .gitignore con reglas básicas"

.gitignore = lista de cosas que Git debe pretender que no existen.

## ejercicios

[01]

Crea tu primer repositorio

Crea una carpeta llamada "proyecto-datos", inicializa Git dentro de ella, crea un archivo README.md con tu nombre y haz tu primer commit.

Cargando editor...
[02]

Haz 3 commits seguidos

Partiendo de un repositorio vacío, haz 3 commits diferentes: uno creando la estructura, otro añadiendo un script, y otro con un .gitignore. Verifica el historial al final.

Cargando editor...
[03]

Sé detective con git status

Tu compañero dejó un repositorio a medias. Usa git status para entender qué pasó: qué archivos están modificados, cuáles están en staging y cuáles son nuevos. Luego termina el trabajo.

Cargando editor...
[04]

Configura .gitignore para un proyecto Python

Crea un .gitignore profesional para un proyecto de Python/datos. Debe ignorar: archivos .pyc, carpeta __pycache__/, archivos .env (contraseñas), carpeta .venv/ (entorno virtual) y archivos temporales .tmp.

Cargando editor...

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...