Skip to main content

Command Palette

Search for a command to run...

Git stash

Published
3 min read
Git stash

Vamos a aprender un excelente recurso el cual nos va a ser de mucha utilidad al trabajar en git y necesitemos movernos a través de nuestras ramas. Algo muy común en el dia a dia de un desarrollador.

Te pasa que estas trabajando una funcionalidad en una determinada rama pero quieres ver cambios en otra rama? pero no quieres llevarte los cambios que tienes en tu rama actual hacia la otra BRANCH o bien git te menciona que no puedes moverte sin hacer antes un commit? podriamos pensar, Ok, haré un commit y listo. Esto sería ideal, pero que ocurre si no tienes los cambios listos aun?

Es aquí donde el comando STASH juega un papel clave. veamos entonces:

Que es el STASH

El Stash es un almacén temporal que tiene forma de pila

image.png

ya que los cambios de tu directorio se van apilando para estar disponibles luego y ser recuperados.

image.png

Acordemos entonces que: git stash es un almacén temporal para cambios que no queremos commitear pero tampoco queremos perder

Guardar cambios en el stash

  • todos los cambios que pueden ser guardados en el stash son aquellos que no han sido commiteados, esto incluye incluso los que ya estan en el stage área.

Imaginemos que tenemos un repositorio, el cual posee un commit hecho previamente, luego de esto hemos modificado el archivo index.js

image.png

y ahora quiero moverme a otra rama para poder trabajar en otra cosa, pero no quiero perder estos cambios. Es aquí donde podemos poner los cambios en el stash

image.png

de esta manera hemos creado nuestro primer almacén temporal, volvamos a ejecutar git status y veamos que ya no tenemos cambios en el área de trabajo

image.png

para asegurarnos que realmente guardamos nuestros cambios y no han sido descartados podemos hacer uso del siguiente comando

git stash list

image.png

Importante

todos los archivos que han sido creados por primera vez el cual nunca ha sido incluido en un commit, git lo ignorara al almacenar en el stash debido a que git stash solo almacena ficheros modificados Hay que tener cuidado con ello

  • Aquí un ejemplo image.png

Stash con descripción

Para poder agregar una descripción a nuestro stash podemos indicarla de la siguiente manera

git stash -m "My comment"

image.png

ahora podemos usar nuevamente git stash list y ver que nuestro stash posee una descripción más clara para que podamos identificarlo facilmente cuando tengamos que recuperar ese cambio image.png

pero aquí surge la duda, como puedo recuperar mi cambio?

Recuperando cambios del stash

para poder recuperar los cambios de la pila temporal vamos a utilizar

git stash pop

image.png

de esta manera volvemos a tener los cambios en nuestro directorio de trabajo, listos para continuar donde los dejamos

considero es importante entender que los cambios se van guardando como lo describe la siguiente imagen

image.png

debido a que si nosotros ejecutamos git stash pop siempre nos retornara el último stash que fue almacenado, si deseamos acceder a un stash especifico tenemos entonces que especificarlo de la siguiente manera

git stash pop stash@{numero_del_stash}

image.png

Esto puede ser de utilidad si queremos recuperar algun stash que este apilado varios stash atras.

Espero te sea de utilidad!

H

Muchas gracias por la info