El Ciclo Básico: add, commit, status
Bienvenido a tu primera lección práctica sobre Git. En este módulo aprenderás los tres comandos fundamentales que usarás cientos de veces al día cuando trabajes con control de versiones. Dominar estos tres comandos —git status, git add y git commit— es esencial para cualquier desarrollador que quiera trabajar de forma organizada y colaborativa.
¿Qué es el ciclo básico de Git?
Git funciona con un flujo de trabajo específico que implica tres áreas principales de tu proyecto:
- Directorio de trabajo (Working Directory): Es la carpeta donde están tus archivos normales, los que ves y editas todos los días.
- Área de preparación (Staging Area): Es una zona intermedia donde Git coloca los cambios que quieres incluir en el próximo commit.
- Repositorio (Repository): Es donde Git guarda permanentemente tus instantáneas de código.
El ciclo básico de Git es el proceso de: modificar archivos → añadirlos al área de preparación → guardarlos como un commit permanente. Este ciclo se repite constantemente durante todo el desarrollo de un proyecto.
git status: Conoce el estado de tu proyecto
El comando git status es tu mejor amigo. Cada vez que quieras saber qué está pasando con tus archivos, este comando te lo muestra. Es como hacer un inventario de tu proyecto en un momento dado.
git status
Al ejecutarlo, Git te mostrará información importante:
- Qué archivos han sido modificados
- Qué archivos están preparados para commitear
- Qué archivos son nuevos (sin rastrear)
- Si hay conflictos sin resolver
index.html, creaste un nuevo archivo styles.css y borraste old-file.txt. Al escribir git status, Git te mostrará exactamente estos tres cambios organizados por categorías.git add: Preparando archivos para guardar
El comando git add es el puente entre tu directorio de trabajo y el área de preparación. Piensa en él como colocar elementos en una caja antes de enviar un paquete: primero pones las cosas en la caja, y cuando estás seguro de que todo está correcto, cierras la caja (haces el commit).
Sintaxis básica
# Añadir un archivo específico
git add nombre-del-archivo.html
# Añadir todos los archivos modificados
git add .
# Añadir todos los archivos con extensión específica
git add *.css
# Añadir todos los archivos de una carpeta
git add carpeta/
# Añadir múltiples archivos específicos
git add archivo1.txt archivo2.txt archivo3.txt
git add . es rápido y conveniente, en proyectos reales te recomiendo ser más selectivo. Añade archivos relacionados logicalmente juntos para crear commits más organizados y significativos. Esto hace que el historial sea más fácil de entender para todo tu equipo.El punto (.) tiene poder
El punto . en Git significa "todos los archivos modificados y nuevos en el directorio actual y subdirectorios". Sin embargo, ten cuidado: git add . no añade archivos eliminados. Para eso necesitarías git add -A que añade todos los cambios de todo el repositorio.
git commit: Guardando tu trabajo permanentemente
Un commit es como tomar una foto de tu proyecto en un momento específico. Cada commit tiene un identificador único (hash SHA-1), un mensaje descriptivo, y representa un estado completo de todos los archivos que incluiste.
# Crear un commit con mensaje
git commit -m "Agregar formulario de contacto"
# Crear un commit que incluye todos los archivos modificados
git commit -am "Actualizar estilos del header"
# Modificar el último commit (si olvidaste algo)
git commit --amend
Anatomía de un buen commit
| Elemento | Descripción | Ejemplo |
|---|---|---|
| Verbo en imperativo | Describe qué hace el commit | "Agregar", "Corregir", "Eliminar" |
| alcance | Qué parte del proyecto afecta | "en el login", "en la API" |
| Descripción corta | Explicación concisa del cambio | "validación de contraseña" |
| Línea en blanco | Separación | |
| Descripción detallada | Por qué se hizo el cambio (opcional) | Motivación y contexto |
Poniendo todo junto: El flujo completo
Ahora que conoces los tres comandos, vamos a ver cómo funcionan juntos en un escenario real:
- Empiezas a trabajar: Editas
index.html, creascontacto.htmly modificasstyles.css - Verificas el estado: Ejecutas
git statusy ves los tres archivos como "modificados" o "no rastreados" - Preparas los cambios: Usas
git add index.html contacto.htmlpara añadir solo los archivos de la nueva funcionalidad - Haces el commit: Ejecutas
git commit -m "Agregar página de contacto" - Verificas de nuevo:
git statusahora muestra solostyles.csspendiente
git commit -am combina add y commit en uno solo, pero solo funciona para archivos que ya están siendo rastreados por Git. Los archivos nuevos siempre necesitan un git add explícito primero.Trabajando en equipos: Por qué importa este ciclo
Cuando trabajas con otras personas en un proyecto, el ciclo de add-commit se vuelve crítico por varias razones:
- Organización: Commits pequeños y focales facilitan que otros entiendan qué cambiaste
- Reversión: Si algo sale mal, puedes revertir un commit específico sin perder todo tu trabajo
- Historial limpio: Un equipo que hace commits descriptivos tiene un historial útil para investigar problemas
- Code review: Cuando alguien revisa tu código, commits lógicos hacen la revisión más eficiente
Un equipo que domina el ciclo básico de Git tiene una base sólida para colaboraciones exitosas. Los comandos complejos vendrán después, pero sin estos fundamentos, cualquier trabajo en equipo será caótico.
Conceptos avanzados que debes conocer
Ver más.gitignore: Archivos que Git debe ignorar
A veces hay archivos que no quieres que Git rastree, como archivos de configuración local, dependencias descargadas, o archivos generados automáticamente. Para esto existe .gitignore:
# Crear archivo .gitignore
touch .gitignore
# Contenido típico de .gitignore
node_modules/
.env
*.log
dist/
.DS_Store
Cualquier archivo o carpeta listada en .gitignore será ignorada por Git, y git status no la mostrará.
git diff: Ver exactamente qué cambió
Antes de hacer commit, puedes ver exactamente qué líneas modificaste con git diff:
# Ver cambios no preparados
git diff
# Ver cambios ya preparados
git diff --staged
# Ver cambios en un archivo específico
git diff archivo.html
Esta herramienta es invaluable para revisar tu trabajo antes de confirmarlo.
Errores comunes y cómo evitarlos
| Error común | Consecuencia | Solución |
|---|---|---|
| Commit sin mensaje | Commits sin contexto en el historial | Siempre usa -m "mensaje" |
| Commitear archivos sensibles | Exposición de datos de producción | Usa .gitignore y revisa antes de commitear |
| Commits enormes | Difícil de revisar y revertir | Haz commits pequeños y frecuentes |
| Olvidar git add | Cambios no incluidos en el commit | Siempre verifica con git status antes de commitear |
| Usar mensajes vagos | Historial inútil para el equipo | Sé específico: qué, por qué y para qué |
git status y git diff --staged. Esta dupla te permite revisar exactamente qué vas a guardar antes de hacer el commit. Es una免费的"última oportunidad" para detectar errores.Resumen del flujo de trabajo
# 1. Trabajas en tu proyecto
# 2. Haces cambios en archivos
# 3. Revisas el estado actual
git status
# 4. Ves los cambios específicos
git diff
# 5. Preparas los archivos que quieres guardar
git add archivo1.html
git add archivo2.css
# 6. Verificas lo que se preparó
git diff --staged
# 7. Haces el commit con descripción clara
git commit -m "Agregar página de contacto con formulario básico"
# 8. Verificas que todo quedó limpio
git status
Este ciclo —modificar → status → add → diff → commit— es la base de todo tu trabajo con Git. Dominarlo te permitirá trabajar de forma organizada, colaborar efectivamente con tu equipo, y mantener un historial de proyecto limpio y útil. Practica estos comandos hasta que se sientan naturales.
¿Cuál es el orden correcto del ciclo básico de Git?
- A) commit, add, status
- B) status, commit, add
- C) status, add, commit
- D) add, status, commit
git status, luego preparas los archivos con git add, y finalmente guardas los cambios con git commit.Próximos pasos
Ahora que dominas el ciclo básico, estás listo para aprender sobre ramas (branches) y cómo trabajar con repositorios remotos en GitHub. Cada nuevo concepto que aprendas se construirá sobre estos fundamentos, así que asegúrate de practicar hasta que el flujo de status-add-commit sea automático.