Tester plusieurs stashes
Dans des scénarios réels, vous devrez peut-être stocker (stash) des modifications plusieurs fois. Git vous permet d'avoir plusieurs stashes, qui sont gérés sous forme de pile (stack). Le stash le plus récent se trouve au sommet de la pile, désigné par stash@{0}
. Les stashes plus anciens sont stash@{1}
, stash@{2}
, et ainsi de suite.
Créons un autre ensemble de modifications et stockons-les pour voir comment cela fonctionne.
Tout d'abord, assurez-vous que vous êtes dans le répertoire ~/project/my-time-machine
.
cd ~/project/my-time-machine
Maintenant, ajoutons une ligne différente au fichier message.txt
:
echo "Adding a second line for another stash." >> message.txt
Vérifions le contenu :
cat message.txt
Vous devriez maintenant voir trois lignes :
Hello, Future Me
Adding a new line for stashing.
Adding a second line for another stash.
Maintenant, stockons ces nouvelles modifications :
git stash save "Added a second line for stashing demo"
Vous devriez voir un message indiquant le nouveau stash :
Saved working tree and index state On branch master: Added a second line for stashing demo
Pour voir la liste des stashes que vous avez, utilisez la commande git stash list
:
git stash list
Vous devriez voir quelque chose comme cela :
stash@{0}: On master: Added a second line for stashing demo
stash@{1}: On master: Added a line for stashing demo
Notez que le stash le plus récent ("Added a second line...") est stash@{0}
, et le précédent ("Added a line...") est stash@{1}
.
Vous pouvez utiliser git stash show -p
avec l'identifiant du stash pour afficher le contenu d'un stash spécifique. Par exemple, pour afficher le premier stash que nous avons créé (stash@{1}
) :
git stash show -p stash@{1}
Cela vous montrera le diff des modifications dans 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.
Et pour afficher le stash le plus récent (stash@{0}
) :
git stash show -p stash@{0}
Cela vous montrera le diff des modifications dans 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.
Être capable de gérer plusieurs stashes et d'inspecter leur contenu individuellement est très utile lorsque vous gérez différentes tâches ou expériences.