Añadir archivos al Staging Area
Aprende a utilizar el comando git add para preparar tus cambios en el área de preparación (staging area) antes de confirmarlos con un commit.
Cristian Escalante
Última actualización: 20 de abril de 2025
Añadir archivos al Staging Area
El área de preparación (staging area) es una de las características más poderosas de Git. Funciona como una zona intermedia donde seleccionas qué cambios quieres incluir en tu próximo commit, permitiéndote crear commits precisos y organizados.
¿Qué es el Staging Area?
El Staging Area (también conocido como "index" o "área de preparación") es un área intermedia entre tu directorio de trabajo y el repositorio Git. Cuando añades archivos al staging, le estás diciendo a Git: "quiero incluir estos cambios específicos en mi próximo commit".
Esta área te permite:
- Seleccionar específicamente qué cambios quieres confirmar
- Dividir modificaciones en múltiples commits lógicos
- Revisar los cambios antes de confirmarlos
El comando git add
El comando principal para añadir archivos al staging area es git add
. Este comando tiene varias formas de uso según lo que necesites hacer.
Sintaxis básica
git add <ruta-al-archivo-o-directorio>
Añadir un archivo específico
git add archivo.txt
Este comando añade el archivo archivo.txt
al área de preparación.
Añadir múltiples archivos específicos
git add archivo1.txt archivo2.js archivo3.css
Añadir un directorio completo
git add directorio/
Este comando añade todos los archivos dentro del directorio especificado.
Añadir todos los archivos modificados y nuevos
git add .
El punto (.
) representa el directorio actual y todos sus subdirectorios. Este comando añade todos los archivos modificados y nuevos al staging area.
Añadir solo archivos ya rastreados (tracked)
git add -u
La opción -u
(abreviatura de --update
) añade al staging solo los archivos que Git ya está rastreando y que han sido modificados o eliminados. No incluye archivos nuevos.
Opciones avanzadas de git add
Añadir interactivamente
git add -i
# o
git add --interactive
Este comando inicia un modo interactivo que te permite seleccionar partes específicas de archivos para añadir al staging. Es útil cuando has realizado múltiples cambios en un archivo pero quieres confirmarlos por separado.
Añadir partes específicas de archivos
git add -p
# o
git add --patch
La opción -p
te permite revisar cada "fragmento" (hunk) de cambios y decidir si quieres añadirlo o no. Cuando ejecutas este comando, Git te presentará cada cambio y te preguntará qué hacer:
y
: añadir este fragmenton
: no añadir este fragmentos
: dividir el fragmento en partes más pequeñase
: editar manualmente el fragmentoq
: salir
Añadir archivos que coincidan con un patrón
git add "*.js"
Este comando añade todos los archivos JavaScript en el directorio actual.
git add src/**/*.js
Este comando añade todos los archivos JavaScript dentro del directorio src
y sus subdirectorios.
Verificar qué cambios están en el staging area
Después de añadir archivos al staging area, es importante verificar qué cambios exactamente has preparado para el commit:
Ver el estado actual
git status
Este comando muestra:
- Archivos en el staging area (cambios a ser confirmados)
- Archivos modificados pero no en staging
- Archivos nuevos no rastreados
Ver diferencias detalladas
# Ver diferencias entre el staging area y el último commit
git diff --staged
# o
git diff --cached
Este comando muestra exactamente qué cambios has añadido al staging area.
# Ver diferencias entre el directorio de trabajo y el staging area
git diff
Este comando muestra los cambios que aún no has añadido al staging.
Casos de uso comunes
Flujo de trabajo básico
# Editar archivos
echo "Nueva línea" >> archivo.txt
# Ver qué ha cambiado
git status
# Añadir cambios al staging
git add archivo.txt
# Verificar que los cambios están en staging
git status
# Crear un commit con los cambios
git commit -m "Añade nueva línea a archivo.txt"
Dividir cambios en múltiples commits
# Has modificado varios archivos para diferentes características
git status
# Muestra: modificados archivo1.txt, archivo2.txt, archivo3.txt
# Añadir solo los archivos relacionados con la primera característica
git add archivo1.txt archivo2.txt
# Commit de la primera característica
git commit -m "Implementa característica A"
# Añadir los archivos para la segunda característica
git add archivo3.txt
# Commit de la segunda característica
git commit -m "Implementa característica B"
Añadir partes específicas de un archivo
# Has realizado múltiples cambios en un archivo
git add -p archivo.txt
# Git te mostrará cada cambio y podrás decidir
# Después de seleccionar los cambios deseados
git commit -m "Corrige error específico en archivo.txt"
# Luego puedes añadir el resto de cambios
git add archivo.txt
git commit -m "Implementa nueva funcionalidad en archivo.txt"
Deshacer cambios en el staging area
Si añadiste archivos al staging por error o cambiaste de opinión, puedes quitarlos:
# Quitar un archivo específico del staging
git restore --staged archivo.txt
# o (en versiones antiguas de Git)
git reset HEAD archivo.txt
# Quitar todos los archivos del staging
git restore --staged .
# o (en versiones antiguas de Git)
git reset HEAD
Buenas prácticas
- Añade cambios relacionados: Agrupa en un mismo commit solo los cambios que están relacionados lógicamente.
- Verifica antes de confirmar: Usa
git diff --staged
para revisar exactamente qué cambios estás a punto de confirmar. - Usa commits atómicos: Haz commits pequeños y enfocados en un solo cambio lógico. El staging area te ayuda a lograrlo.
- Aprovecha git add -p: Para archivos con múltiples cambios no relacionados, usa la opción patch para seleccionar específicamente qué cambios incluir.
- Escribe mensajes de commit descriptivos: Ya que has tomado el tiempo de preparar cuidadosamente tus cambios, asegúrate de describirlos adecuadamente en el mensaje de commit.
Errores comunes y soluciones
Añadir archivos no deseados
Problema: Añadiste al staging archivos que no querías incluir.
Solución: Usa git restore --staged <archivo>
para quitarlos del staging.
Olvidar añadir archivos nuevos
Problema: Los archivos nuevos no se añaden con git add -u
.
Solución: Usa git add .
para incluir tanto archivos modificados como nuevos, o añádelos específicamente por nombre.
Añadir archivos binarios o sensibles
Problema: Añadiste al staging archivos binarios grandes o con información sensible.
Solución:
- Quítalos del staging:
git restore --staged archivo-sensible
- Añádelos a
.gitignore
para evitar añadirlos accidentalmente en el futuro - Si ya hiciste commit, considera usar
git filter-branch
o herramientas como BFG Repo-Cleaner
Integración con herramientas gráficas
Muchas herramientas gráficas facilitan la gestión del staging area:
- Visual Studio Code: Panel de Git integrado
- GitKraken: Interfaz visual para staging
- Sourcetree: Vista detallada de cambios y staging
- GitHub Desktop: Selección visual de cambios para staging
Estas herramientas permiten seleccionar visualmente qué archivos o incluso qué líneas específicas añadir al staging.
Conclusión
El área de preparación (staging area) es una característica fundamental de Git que te permite controlar con precisión qué cambios incluir en cada commit. Dominar el comando git add
y sus opciones te ayudará a mantener un historial de commits limpio y organizado, facilitando la colaboración y el mantenimiento del proyecto a largo plazo.
Al aprovechar al máximo el staging area, puedes crear commits atómicos y bien organizados que hacen que el historial de tu proyecto sea más comprensible y útil para todos los colaboradores.