Probar múltiples stashes
En escenarios del mundo real, es posible que necesites guardar cambios en un stash varias veces. Git te permite tener múltiples stashes, y se gestionan como una pila. El stash más reciente está en la cima de la pila, referido como stash@{0}
. Los stashes más antiguos son stash@{1}
, stash@{2}
, y así sucesivamente.
Vamos a crear otro conjunto de cambios y guardarlos en un stash para ver cómo funciona esto.
Primero, asegúrate de que estás en el directorio ~/project/my-time-machine
.
cd ~/project/my-time-machine
Ahora, agreguemos una línea diferente al archivo message.txt
:
echo "Adding a second line for another stash." >> message.txt
Verifica el contenido:
cat message.txt
Ahora deberías ver tres líneas:
Hello, Future Me
Adding a new line for stashing.
Adding a second line for another stash.
Ahora, guarda estos nuevos cambios en un stash:
git stash save "Added a second line for stashing demo"
Deberías ver una salida que indique el nuevo stash:
Saved working tree and index state On branch master: Added a second line for stashing demo
Para ver la lista de stashes que tienes, utiliza el comando git stash list
:
git stash list
Deberías ver algo como esto:
stash@{0}: On master: Added a second line for stashing demo
stash@{1}: On master: Added a line for stashing demo
Observa que el stash más reciente ("Added a second line...") es stash@{0}
, y el anterior ("Added a line...") es stash@{1}
.
Puedes utilizar git stash show -p
con el identificador del stash para ver el contenido de un stash específico. Por ejemplo, para ver el primer stash que creamos (stash@{1}
):
git stash show -p stash@{1}
Esto te mostrará la diferencia de los cambios en stash@{1}
:
diff --git a/message.txt b/message.txt
index <some_hash>..<some_hash> 100644
--- a/message.txt
+++ b/message.txt
@@ -1 +1,2 @@
Hello, Future Me
+Adding a new line for stashing.
Y para ver el stash más reciente (stash@{0}
):
git stash show -p stash@{0}
Esto te mostrará la diferencia de los cambios en stash@{0}
:
diff --git a/message.txt b/message.txt
index <some_hash>..<some_hash> 100644
--- a/message.txt
+++ b/message.txt
@@ -2 +2,2 @@
Adding a new line for stashing.
+Adding a second line for another stash.
Ser capaz de gestionar múltiples stashes e inspeccionar su contenido individualmente es muy útil cuando estás manejando diferentes tareas o experimentos.