17. Diferentes formas de añadir al Stage

 17. Diferentes Formas de Añadir Archivos al Stage (Staging Area)

Introducción: ¿Qué es el "Stage"?

Imagina que estás preparando una presentación importante. Tienes muchos documentos sobre tu mesa (tu directorio de trabajo), pero solo algunos están listos para ser mostrados. El "Stage" (o área de preparación) es como una bandeja seleccionada donde colocas únicamente los documentos que quieres incluir en tu próxima presentación oficial (tu próximo commit).

Hoy aprenderemos diferentes estrategias para mover archivos a esa bandeja, desde métodos quirúrgicos hasta formas más amplias y visuales.


Método 1: La Precisión Quirúrgica (Línea de Comandos)

Añadir archivos específicos con rutas exactas

Cuando necesitas ser extremadamente preciso, la terminal es tu mejor aliada.

bash
# Añadir un archivo específico dentro de una carpeta
git add uploads/.gitkeep

¿Por qué es útil? Porque Git ignora las carpetas vacías. El archivo .gitkeep es un "truco" para decirle a Git: "Oye, esta carpeta es importante, aunque esté vacía, guárdala en el historial".

El peligro de los comodines (wildcards)

Los comodines como * son poderosos, pero pueden fallar si no hay archivos que coincidan exactamente:

bash
# Esto NO funcionará si no hay archivos con nombre antes del .gitkeep
git add uploads/*.gitkeep  # ❌ Error: No encuentra coincidencias

# Esto SÍ funcionará (sin comodín)
git add uploads/.gitkeep    # ✅ Correcto

Regla de oro: El comodín * busca archivos con cualquier nombre antes del punto. Si tu archivo comienza con un punto (como .gitkeep), el comodín no encontrará nada.


Método 2: Añadir por Contenido de Carpetas (El Poder de la Barra)

Añadir todo dentro de una carpeta (incluyendo subcarpetas)

Imagina que tienes una carpeta css/ con múltiples subcarpetas y archivos. Quieres añadirlo todo de una sola vez:

bash
# Añade TODO lo que hay dentro de css/ (archivos y subcarpetas)
git add css/

¡Magia pura! Este comando añade recursivamente todo el contenido de la carpeta css al stage. Es perfecto para:

  • git add css/ - Todos los estilos

  • git add js/ - Todos los scripts

  • git add images/ - Todas las imágenes

  • git add fonts/ - Todas las fuentes

La estrategia de commits por capas

Puedes hacer commits separados para cada tipo de archivo:

bash
# Commit para estilos
git add css/
git commit -m "Estilos agregados: estructura completa de CSS"

# Commit para fuentes e imágenes
git add fonts/ images/
git commit -m "Fuentes e imágenes agregadas: assets visuales"

Método 3: La Alternativa Visual (Interfaz Gráfica)

No todo es terminal. Las interfaces gráficas como la de Visual Studio Code ofrecen una forma visual y cómoda de gestionar el stage.

Preparando el escenario desde cero

  1. Inicializa el repositorio (si es nuevo): git init

  2. Abre la vista de Git en VSCode (icono de branching o atajo Ctrl+Shift+G)

Añadiendo archivos visualmente

En VSCode, los archivos modificados aparecen en una lista. Puedes:

  • Hacer clic en el "+" junto a cada archivo para añadirlo individualmente

  • Hacer clic en el "+" junto a una carpeta para añadir todo su contenido

  • Escribir mensajes de commit y confirmar con Ctrl+Enter

Ventajas y desventajas

Interfaz Gráfica (VSCode)Línea de Comandos
✅ Más intuitiva y visual✅ Mayor control y precisión
✅ Ideal para principiantes✅ Permite usar comodines complejos
❌ Menos control sobre patrones específicos✅ Automatizable y scripteable

Comparativa: Métodos de Añadido al Stage

SituaciónComando / AcciónCuándo usarlo
Archivo específicogit add ruta/al/archivoCuando solo quieres un archivo concreto
Archivo ocultogit add .gitkeepSin comodín, directamente el nombre
Carpeta completagit add nombre-carpeta/Para añadir todo el contenido de una carpeta
Varios tipos juntosgit add fonts/ images/Para agrupor assets relacionados
Interfaz visualClic en "+" en VSCodePara ver visualmente qué añades
Todo el proyectogit add .Cuando quieres añadir todos los cambios

Consejos Profesionales

  1. Commits atómicos: Haz commits pequeños y con sentido. No mezcles estilos con funcionalidades nuevas.

  2. Mensajes descriptivos: Usa mensajes como "Estilos del menú principal" en lugar de "cambios varios".

  3. Revisa antes de commitear: Usa git status o la vista de VSCode para asegurarte de que solo añades lo que quieres.

  4. El truco del .gitkeep: Crea siempre este archivo en carpetas vacías que necesites en el repositorio.


Resumen Visual para tu Memoria

text
📁 Tu Proyecto
├── 📁 css/ → git add css/ → "Estilos agregados"
├── 📁 js/ → git add js/ → "Scripts agregados"
├── 📁 fonts/ → git add fonts/ → "Fuentes agregadas"
├── 📁 images/ → git add images/ → "Imágenes agregadas"
├── 📁 uploads/
│   └── 📄 .gitkeep → git add uploads/.gitkeep → "Carpeta uploads preparada"
└── 📄 index.html → git add index.html (o clic en +)

Cuestionario de Repaso

Pregunta 1: ¿Qué comando usarías para añadir todos los archivos dentro de la carpeta css/ incluyendo sus subcarpetas?

<details> <summary>Ver respuesta</summary> `git add css/` (con la barra al final) </details>

Pregunta 2: ¿Por qué el comando git add uploads/*.gitkeep podría no funcionar, y cómo lo corregirías?

<details> <summary>Ver respuesta</summary> Porque el comodín `*` busca archivos con algún nombre antes del punto. Como el archivo se llama `.gitkeep` (comienza con punto), no hay nombre antes. Se corrige usando `git add uploads/.gitkeep` (sin comodín). </details>

Pregunta 3: Menciona dos formas de añadir archivos al stage: una desde la terminal y otra desde Visual Studio Code.

<details> <summary>Ver respuesta</summary> - Terminal: `git add nombre-del-archivo` o `git add carpeta/` - VSCode: Haciendo clic en el símbolo "+" que aparece junto a los archivos modificados en la vista de control de versiones. </details>

Pregunta 4: ¿Para qué sirve el archivo .gitkeep y en qué situación es necesario?

<details> <summary>Ver respuesta</summary> Sirve para "engañar" a Git y que pueda versionar carpetas vacías. Es necesario cuando necesitas que una carpeta (por ejemplo, para subidas de usuarios) exista en el repositorio aunque esté vacía. </details>

Pregunta 5: ¿Cuál es la principal ventaja de usar la terminal frente a la interfaz gráfica para añadir archivos al stage?

<details> <summary>Ver respuesta</summary> La terminal ofrece mayor control y precisión, permitiendo usar comodines complejos y patrones de búsqueda avanzados. Es más fácil de automatizar y scriptear. </details>

Pregunta 6: Si quisieras hacer un commit solo con los cambios de imágenes y fuentes, ¿cómo lo harías?

<details> <summary>Ver respuesta</summary> `git add images/ fonts/` y luego `git commit -m "Assets visuales: imágenes y fuentes agregadas"` </details>

Pregunta 7: Verdadero o Falso: En Visual Studio Code puedes añadir archivos específicos al stage haciendo clic en el símbolo "+" junto a cada archivo.

<details> <summary>Ver respuesta</summary> Verdadero. Es una de las formas más cómodas y visuales de gestionar el stage. </details>

Comentarios

Entradas populares de este blog

7. ¿Por qué nos interesa saber Git o un sistema de control de versiones?

Php-agregar