Testar Múltiplos Stashes
Em cenários do mundo real, você pode precisar guardar (stash) alterações várias vezes. O Git permite que você tenha múltiplos stashes, e eles são gerenciados como uma pilha (stack). O stash mais recente está no topo da pilha, referido como stash@{0}. Stashes mais antigos são stash@{1}, stash@{2}, e assim por diante.
Vamos criar outro conjunto de alterações e guardá-las (stash) para ver como isso funciona.
Primeiro, certifique-se de que você está no diretório ~/project/my-time-machine.
cd ~/project/my-time-machine
Agora, vamos adicionar uma linha diferente a message.txt:
echo "Adding a second line for another stash." >> message.txt
Verifique o conteúdo:
cat message.txt
Você deve ver três linhas agora:
Hello, Future Me
Adding a new line for stashing.
Adding a second line for another stash.
Agora, guarde (stash) essas novas alterações:
git stash save "Added a second line for stashing demo"
Você deve ver a saída indicando o novo stash:
Saved working tree and index state On branch master: Added a second line for stashing demo
Para ver a lista de stashes que você tem, use o comando git stash list:
git stash list
Você deve ver algo assim:
stash@{0}: On master: Added a second line for stashing demo
stash@{1}: On master: Added a line for stashing demo
Observe que o stash mais recente ("Added a second line...") é stash@{0}, e o anterior ("Added a line...") é stash@{1}.
Você pode usar git stash show -p com o identificador do stash para visualizar o conteúdo de um stash específico. Por exemplo, para visualizar o primeiro stash que criamos (stash@{1}):
git stash show -p stash@{1}
Isso mostrará o diff para as alterações em 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.
E para visualizar o stash mais recente (stash@{0}):
git stash show -p stash@{0}
Isso mostrará o diff para as alterações em 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 gerenciar múltiplos stashes e inspecionar seus conteúdos individualmente é muito útil quando você está lidando com diferentes tarefas ou experimentos.