- #git
- #stash
¿Qué es git stash?
Escrito por Jhon Achata el 3 de enero de 2023
El comando git stash
es una función muy útil de git, nos permite guardar temporalmente cambios para aplicarlos luego. Esto es muy útil cuando se trabaja con múltiples ramas y se quiere ir cambiando entre ellas sin tener la necesidad de hacer commit de los cambios.
Pongámonos en el siguiente escenario:
- Tenemos un proyecto con 02 ramas,
main
ydevelop
, justo estamos realizando cambios en develop y necesitamos urgentemente realizar una corrección en la rama main que es la que esta en producción.
Antes de poder cambiarnos de rama para poder realizar el cambio, necesitamos guardar los cambios que ya teníamos hechos en la rama develop, pero no queremos hacer commit por que aún no terminamos nuestro trabajo.
Es en estas situaciones donde podemos hacer uso de git stash
.
¿Cómo usar git stash?
Bien, entonces ¿cómo lo uso?, pues es bastante fácil, pongamos como ejemplo el repositorio de este blog (que de hecho puedes encontrar el código en github), en el cual he realizado cambios en algunos archivos:
Como se ve en la imagen, nos encontramos en la rama develop
y realize 2 cambios: Una modificación en el archivo MainLayout.astro
y agregue un nuevo archivo como-usar-git-stash.md
el cual aún no tiene seguimiento por git.
Ahora si queremos cambiarnos a la rama main
nos podemos encontrar con 2 situaciones:
Una en la que al hacer checkout a la rama main, nos llevemos los archivos que ya modificamos en la rama develop.
Otra en la que al intentar hacer checkout a la rama main, nos pidan hacer commit de nuestros cambios antes de cambiarnos de rama.
Ahora es donde podemos hacer uso del comando git stash
Como vemos en la imagen anterior al hacer uso del comando git stash
, donde también incluí la opción -u
para se incluyeran los archivos que aún no se están haciendo seguimiento con git, los archivos se almacenaron en un stash.
Ahora ya podemos movernos con libertar entre las ramas, sin perder nuestros cambios previos o agregarlos en un commit.
Recuperar los cambios del stash
Pero y ahora ¿Cómo recupero mis cambios?, es muy fácil, lo único que debemos hacer es, ejecutar el comando git stash pop
o si tenemos más de un stash, podemos obtenerlos según su índice con git stash pop stash@{0}
Puedes encontrar mas información sobre git stash
en la documentación.