HDP115

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.

CE

Cristian Escalante

Última actualización: 20 de abril de 2025

git
control de versiones
desarrollo

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:

  1. Seleccionar específicamente qué cambios quieres confirmar
  2. Dividir modificaciones en múltiples commits lógicos
  3. 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 fragmento
  • n: no añadir este fragmento
  • s: dividir el fragmento en partes más pequeñas
  • e: editar manualmente el fragmento
  • q: 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

  1. Añade cambios relacionados: Agrupa en un mismo commit solo los cambios que están relacionados lógicamente.
  2. Verifica antes de confirmar: Usa git diff --staged para revisar exactamente qué cambios estás a punto de confirmar.
  3. Usa commits atómicos: Haz commits pequeños y enfocados en un solo cambio lógico. El staging area te ayuda a lograrlo.
  4. Aprovecha git add -p: Para archivos con múltiples cambios no relacionados, usa la opción patch para seleccionar específicamente qué cambios incluir.
  5. 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:

  1. Quítalos del staging: git restore --staged archivo-sensible
  2. Añádelos a .gitignore para evitar añadirlos accidentalmente en el futuro
  3. 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.

Clonar un repositorio
Aprende a clonar repositorios Git existentes para obtener un...
Hacer commit
Aprende a confirmar cambios en tu repositorio Git utilizando...
Referencias
Git. Git - git-add Documentation. https://git-scm.com/docs/git-add
Scott Chacon and Ben Straub. Pro Git Book - Recording Changes to the Repository. https://git-scm.com/book/en/v2/Git-Basics-Recording-Changes-to-the-Repository
Git Documentation. Git Tools - Interactive Staging. https://git-scm.com/book/en/v2/Git-Tools-Interactive-Staging

Conceptos Básicos de HTML

Aprende los conceptos básicos de HTML

Conceptos Básicos de CSS

Aprende los conceptos básicos de CSS

Conceptos Básicos de JavaScript

Aprende los conceptos básicos de JavaScript

Conceptos Básicos SQL

Aprende los conceptos básicos de SQL

Conceptos Básicos de Python

Aprende los conceptos básicos de Python

Conceptos Básicos de UML

Aprende los conceptos básicos de UML

Refuerzo Academico de Herramientas de Productividad 2025