Stash
Sometimes, you don't want to commit your current work but need to switch to another branch
El comando git stash almacena temporalmente (o guarda en un stash) los cambios que hayas efectuado en el código en el que estás trabajando para que puedas trabajar en otra cosa y, más tarde, regresar y volver a aplicar los cambios más tarde. Guardar los cambios en stashes resulta práctico si tienes que cambiar rápidamente de contexto y ponerte con otra cosa, pero estás en medio de un cambio en el código y no lo tienes todo listo para confirmar los cambios.
Cómo guardar el trabajo en un stash
El comando git stash coge los cambios sin confirmar (tanto los que están preparados como los que no), los guarda aparte para usarlos más adelante y, acto seguido, los deshace en el código en el que estás trabajando.
git stashLlegados a este punto, tienes libertad para hacer cambios, crear confirmaciones, cambiar de rama y efectuar cualesquiera otras operaciones de Git; y, luego, regresar y volver a aplicar el stash cuando lo tengas todo listo.
Ten en cuenta que el stash es local para tu repositorio de Git y que los stashes no se transfieren al servidor cuando subes los cambios al repositorio remoto.
Cómo volver a aplicar los cambios de un stash
Puedes volver a aplicar los cambios de un stash mediante el comando
git stash popAl hacer pop del stash, se eliminan los cambios de este y se vuelven a aplicar en el código en el que estás trabajando.
Otra opción es volver a aplicar los cambios en el código en el que estás trabajando y conservarlos en tu stash mediante el comando
git stash applyEsto resulta útil si quieres aplicar los mismos cambios de un stash en varias ramas.
Cómo gestionar varios stashes
No tienes por qué limitarte a un solo stash. De hecho, puedes ejecutar git stash varias veces para crear varios stashes y, luego, usar git stash list para verlos. De forma predeterminada, los stashes se identifican simplemente mediante el acrónimo "WIP" (o "work in progress", que significa "trabajo en curso") en la parte superior de la rama y la confirmación a partir de las cuales creaste el stash.
git stash listPara contextualizar un poquito más, es recomendable comentar los stashes con una descripción mediante el comando:
Cómo crear una rama a partir de un stash
Si los cambios en la rama difieren de los cambios en el stash, podrías encontrarte con conflictos al hacer pop del stash o al aplicarlo. Lo que puedes hacer es usar git stash branch para crear una rama nueva en la que aplicar los cambios del stash.
De este modo, se extrae una rama nueva basada en la confirmación a partir de la cual creaste el stash y, después, se hace pop en ella con los cambios del stash.
Cómo limpiar el stash
Si decides que ya no necesitas algún stash en particular, puedes eliminarlo mediante el comando.
También tienes la opción de eliminar todos los stashes mediante el siguiente comando.
Last updated