Por Anónimo (no verificado) , 29 Abril 2026

Introducción

Casi cada sesión de Git sigue el mismo ritmo de tres pasos: edita archivos en tu árbol de trabajo, stagea los cambios que quieres registrar y commitealos al historial. Dominar este bucle es la base de todo lo demás.

Las tres áreas

  • Árbol de trabajo: archivos en disco que editas con tu editor.
  • Index (también llamado el área de staging): una instantánea de lo que irá al próximo commit.
  • Repositorio: el historial commiteado almacenado en .git.

Un ciclo completo

  1. Edita un archivo en tu editor.
  2. Ejecuta git status para ver qué cambió.
  3. Ejecuta git diff para inspeccionar los cambios.
  4. Stagea con git add.
  5. Commit con git commit.
echo "hello" >> notes.txt
git status
git diff
git add notes.txt
git diff --staged
git commit -m "Add greeting to notes"

Stageando selectivamente

Puedes stagear archivos individuales, patrones glob o incluso partes de un archivo usando el modo interactivo:

git add notes.txt readme.md
git add "src/*.py"
git add -p notes.txt    # modo patch: sí/no por hunk

El modo patch es invaluable cuando tienes cambios mezclados que quieres dividir en commits separados.

Saltándose el index

El atajo git commit -a stagea y commitea todos los archivos rastreados en un solo paso. No añade archivos nuevos (no rastreados):

git commit -am "Quick fix"

Escribiendo buenos commits

Un mensaje de commit tiene una línea de asunto corta (50 caracteres más o menos) y un cuerpo opcional explicando el por qué. Ejecuta git commit sin -m para abrir tu editor:

git commit
# se abre el editor
# Línea de asunto
#
# Explicación más larga...

Commits atómicos

Un buen commit captura un cambio lógico. Constrúyelo deliberadamente: stagea exactamente los hunks que pertenecen juntos con git add -p, luego commitea. Si te encuentras describiendo un commit con "y" en el asunto ("Arregla login y refactoriza logger"), probablemente debería ser dos commits.

git add -p src/auth.py        # stagea solo el arreglo de login
git commit -m "Fix login redirect on expired session"
git add -p src/logger.py
git commit -m "Refactor logger to use structured fields"

Los commits atómicos hacen que git bisect, git revert y la revisión de código sean dramáticamente más fáciles después.

Errores comunes

Olvidar hacer git add de archivos nuevos y sorprenderte con un commit "vacío". git status siempre te dice la verdad; léelo antes de commitear. Otra trampa: usar git commit -am cuando tienes nuevos archivos sin rastrear, lo que silenciosamente los deja fuera. Finalmente, commitear archivos generados (salida de build, node_modules, configuración del IDE) ensucia el historial y ralentiza los clones; añádelos a .gitignore antes de stagear. Cuando dudes, ejecuta git diff --staged para ver exactamente qué contendrá tu próximo commit.