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.