Contexte
Vous travaillez sur votre nouvelle fonctionnalité sur une branche dédiée, mais on vous informe d'un bug important à régler immédiatement sur la branche principale. Vous ne souhaitez pas créer de commit tout de suite car vous n'êtes pas prêt.
« Ah ben c'est pas que ça m'embête, mais ... »
Bien sûr vous pourriez créer un commit temporaire puis effectuer un soft reset, ou vous pourriez utiliser la commande stash
...
Stash
La commande stash
permettra d'enregistrer une entrée stash contenant vos modifications (et le staging):
Note: les nouveaux fichiers qui n'ont pas été ajouté au staging ne sont pas enregistrés, à moins d'utiliser l'option
--include-untracked
(ou-u
).
On peut voir la liste des entrées avec la sous-commande list
:
Pour récupérer le contenu de l'entrée et la supprimer de la liste, utiliser la sous-commande pop
:
Partie pratique
-
Modifier quelques fichiers, créer une entrée de stash.
-
Sur la branche
master
, modifier la "feuille de triche" (ajoutez les commandesstash
?), et ajouter un commit. -
Revenir sur la branche
experimental
puis récupérer le contenu de l'entrée de stash.