En este tema, aprenderemos sobre una de las características más útiles de Git: el guardado de cambios (stashing). Esta funcionalidad permite a los desarrolladores guardar temporalmente sus cambios no confirmados para poder trabajar en otra cosa sin perder el trabajo en progreso. Es especialmente útil cuando necesitas cambiar de contexto rápidamente, por ejemplo, para revisar un bug crítico en otra rama.

¿Qué es el Guardado de Cambios?

El guardado de cambios en Git permite almacenar temporalmente las modificaciones en un área especial llamada "stash" sin tener que confirmarlas en el historial de commits. Esto es útil cuando necesitas cambiar de rama o trabajar en otra tarea sin perder tus cambios actuales.

Conceptos Clave

  • Stash: Un área temporal donde se guardan los cambios no confirmados.
  • Working Directory: El directorio de trabajo donde se encuentran los archivos del proyecto.
  • Index (Staging Area): El área de preparación donde se colocan los cambios antes de confirmarlos.

Comandos Básicos de Stashing

Guardar Cambios en el Stash

Para guardar los cambios actuales en el stash, utiliza el comando:

git stash

Este comando guarda los cambios no confirmados en el stash y limpia el directorio de trabajo, dejándolo en el estado del último commit.

Listar Stashes

Para ver una lista de todos los stashes guardados, usa:

git stash list

Este comando muestra una lista de todos los stashes con sus identificadores únicos.

Aplicar un Stash

Para aplicar los cambios guardados en el stash al directorio de trabajo, utiliza:

git stash apply

Este comando aplica el stash más reciente al directorio de trabajo. Si deseas aplicar un stash específico, puedes usar su identificador:

git stash apply stash@{n}

Donde n es el índice del stash en la lista.

Eliminar un Stash

Para eliminar un stash después de aplicarlo, usa:

git stash drop

Si deseas eliminar un stash específico, usa su identificador:

git stash drop stash@{n}

Recuperar y Eliminar un Stash

Para aplicar y eliminar un stash en un solo paso, utiliza:

git stash pop

Este comando aplica el stash más reciente y lo elimina de la lista.

Ejemplo Práctico

Supongamos que estás trabajando en una nueva característica en la rama feature-branch y necesitas cambiar a la rama master para solucionar un bug urgente. Aquí hay un ejemplo de cómo podrías usar el stash:

  1. Guardar Cambios en el Stash:

    git stash
    
  2. Cambiar a la Rama master:

    git checkout master
    
  3. Solucionar el Bug y Confirmar los Cambios:

    # Realiza los cambios necesarios
    git add .
    git commit -m "Solucionado el bug crítico"
    
  4. Volver a la Rama feature-branch:

    git checkout feature-branch
    
  5. Aplicar el Stash:

    git stash pop
    

Ejercicio Práctico

Ejercicio 1: Guardar y Aplicar Cambios

  1. Crea un nuevo archivo example.txt y añade algo de contenido.
  2. Guarda los cambios en el stash.
  3. Cambia a una nueva rama test-branch.
  4. Vuelve a la rama original y aplica el stash.

Solución

  1. Crear y modificar el archivo:

    echo "Contenido inicial" > example.txt
    
  2. Guardar los cambios en el stash:

    git stash
    
  3. Crear y cambiar a una nueva rama:

    git checkout -b test-branch
    
  4. Volver a la rama original y aplicar el stash:

    git checkout master
    git stash pop
    

Resumen

En esta sección, hemos aprendido cómo usar el guardado de cambios (stashing) en Git para gestionar cambios no confirmados de manera eficiente. Hemos cubierto los comandos básicos para guardar, listar, aplicar y eliminar stashes, así como un ejemplo práctico y un ejercicio para reforzar los conceptos. Con esta herramienta, puedes cambiar de contexto rápidamente sin perder tu trabajo en progreso, mejorando así tu flujo de trabajo y productividad.

Dominando Git: De Principiante a Avanzado

Módulo 1: Introducción a Git

Módulo 2: Operaciones Básicas de Git

Módulo 3: Ramas y Fusión

Módulo 4: Trabajando con Repositorios Remotos

Módulo 5: Operaciones Avanzadas de Git

Módulo 6: Herramientas y Técnicas de Git

Módulo 7: Estrategias de Colaboración y Flujo de Trabajo

Módulo 8: Mejores Prácticas y Consejos de Git

Módulo 9: Solución de Problemas y Depuración

Módulo 10: Git en el Mundo Real

© Copyright 2024. Todos los derechos reservados