Skip to content

Git Stash

El comando git stash es una herramienta útil en Git que te permite guardar temporalmente los cambios en tu directorio de trabajo sin necesidad de comprometerlos en el repositorio. Esto puede ser especialmente útil cuando estás en medio de una tarea y necesitas cambiar de contexto rápidamente sin perder tu trabajo en progreso. A continuación, te explicaré en detalle cómo funciona el comando git stash y cómo puede ser útil:

¿Cómo funciona git stash?

Cuando ejecutas git stash, Git guarda todos los cambios que has realizado en tu directorio de trabajo desde el último commit en una pila de almacenamiento temporal llamada “stash”. Estos cambios incluyen tanto los cambios en los archivos rastreados como los archivos que aún no han sido agregados al índice de Git (staged).

Para utilizar git stash, simplemente ejecutas el comando sin argumentos:

Terminal window
git stash

Esto guardará tus cambios en el stash y limpiará tu directorio de trabajo, dejándolo en el mismo estado en que se encontraría si hubieras hecho un commit. Una vez que hayas terminado con el cambio de contexto y quieras volver a tu trabajo en progreso, puedes aplicar los cambios almacenados en el stash.

¿Cómo aplicar cambios almacenados en el stash?

Para aplicar los cambios almacenados en el stash de nuevo en tu directorio de trabajo, puedes utilizar el comando git stash apply o git stash pop. La diferencia entre estos dos comandos radica en cómo manejan el stash después de aplicar los cambios:

  • git stash apply: Aplica los cambios almacenados en el stash en tu directorio de trabajo, pero deja el stash intacto. Esto significa que los cambios seguirán estando en el stash después de aplicarlos.

  • git stash pop: Aplica los cambios almacenados en el stash en tu directorio de trabajo y elimina automáticamente el stash de la pila de almacenamiento. Esto significa que los cambios ya no estarán disponibles en el stash después de aplicarlos.

Terminal window
git stash apply

o

Terminal window
git stash pop

Ahora, para eliminar un stash, hay un par de opciones. Puedes eliminar un stash específico usando git stash drop seguido del identificador del stash que deseas eliminar. Por ejemplo:

Terminal window
# Lista todos los stashes guardados
git stash list
# Elimina un stash específico (en este caso, el primer stash)
git stash drop stash@{0}

También puedes eliminar todos los stashes a la vez usando git stash clear:

Terminal window
# Elimina todos los stashes guardados
git stash clear

¿Cuándo es útil utilizar git stash?

  • Cambio de contexto rápido: Si estás trabajando en una tarea y necesitas cambiar a otra tarea urgentemente sin comprometer tus cambios, puedes utilizar git stash para guardar tus cambios temporalmente y luego volver a ellos más tarde.

  • Experimentación: Si quieres realizar un experimento o probar algo nuevo en tu código sin afectar el trabajo actual, puedes guardar temporalmente tus cambios con git stash, realizar las pruebas y luego volver a aplicar los cambios si son exitosos.

  • Resolución de conflictos: En ocasiones, puede ser útil guardar temporalmente tus cambios antes de fusionar o rebasar cambios de otras ramas para evitar conflictos. Una vez resueltos los conflictos, puedes aplicar tus cambios nuevamente con git stash apply.

En resumen, git stash es una herramienta poderosa que te permite guardar temporalmente tus cambios en el directorio de trabajo, lo que te permite cambiar de contexto rápidamente sin perder el trabajo en progreso. Es una función valiosa en el flujo de trabajo de Git, especialmente en situaciones donde necesitas manejar múltiples tareas o realizar experimentos sin comprometer tus cambios en el repositorio.