Donc, je ne sais pas pourquoi il y a tant de consternation sur ce sujet. Je peux nommer une cachette git avec à la fois une poussée et la sauvegarde obsolète, et je peux utiliser une expression régulière pour la retirer avec une application:
Méthode Git Stash pour utiliser un nom à appliquer
$ git stash push -m "john-hancock"
$ git stash apply stash^{/john-hancock}
Comme cela a été mentionné précédemment, la commande save est déconseillée, mais elle fonctionne toujours, vous pouvez donc l'utiliser sur des systèmes plus anciens où vous ne pouvez pas les mettre à jour avec un appel push. Contrairement à la commande push, le commutateur -m n'est pas requis avec save.
// save is deprecated but still functional
$ git stash save john-hancock
Il s'agit de Git 2.2 et de Windows 10.
Preuve visuelle
Voici un beau GIF animé illustrant le processus.

Séquence d'événements
Le GIF s'exécute rapidement, mais si vous regardez, le processus est le suivant:
- La commande ls affiche 4 fichiers dans le répertoire
- touch example.html ajoute un 5ème fichier
- git stash push -m "john-hancock" -a (Le -a inclut les fichiers non suivis)
- La commande ls affiche 4 fichiers après la cachette, ce qui signifie que la cachette et la réinitialisation matérielle implicite ont fonctionné
- git stash applique stash ^ {/ john-hancock} s'exécute
- La commande ls répertorie 5 fichiers, montrant que le fichier example.html a été ramené, ce qui signifie que la commande git stash apply a fonctionné.
Est-ce même logique?
Pour être franc, je ne sais pas vraiment quel est l'avantage de cette approche. Il est utile de donner un nom à la cachette, mais pas la récupération. Peut-être pour le script du shelve et unshelve processus , il serait utile, mais il est encore plus facile de pop juste une planque par son nom.
$ git stash pop 3
$ git stash apply 3
Cela me semble beaucoup plus facile que l'expression régulière.
git stash push -m stashname
est la syntaxe actuelle .git stash save stashname
est obsolète.