Quindi, non sono sicuro del perché ci sia così tanta costernazione su questo argomento. Posso nominare un git stash sia con un push che con il salvataggio deprecato, e posso usare un regex per tirarlo indietro con un applicare:
Git metodo stash per utilizzare un nome da applicare
$ git stash push -m "john-hancock"
$ git stash apply stash^{/john-hancock}
Come è stato menzionato in precedenza, il comando save è obsoleto, ma funziona ancora, quindi è possibile utilizzarlo su sistemi più vecchi in cui non è possibile aggiornarli con una chiamata push. A differenza del comando push, l'opzione -m non è richiesta con il salvataggio.
// save is deprecated but still functional
$ git stash save john-hancock
Questo è Git 2.2 e Windows 10.
Prova visiva
Ecco una bellissima GIF animata che dimostra il processo.
Sequenza di eventi
La GIF viene eseguita rapidamente, ma se guardi, il processo è questo:
- Il comando ls mostra 4 file nella directory
- touch example.html aggiunge un quinto file
- git stash push -m "john-hancock" -a (la -a include file non tracciati)
- Il comando ls mostra 4 file dopo lo stash, il che significa che lo stash e l'hard reset implicito hanno funzionato
- git stash applica stash ^ {/ / john-hancock} viene eseguito
- Il comando ls elenca 5 file, mostrando che il file example.html è stato riportato, il che significa che il comando git stash apply ha funzionato.
Ha senso anche questo?
Ad essere sincero, non sono sicuro di quale sia il vantaggio di questo approccio. C'è valore nel dare un nome allo stash, ma non nel recupero. Forse scrivere lo scaffaletto e il processo senza fronzoli sarebbe utile, ma è ancora molto più semplice inserire una scorta per nome.
$ git stash pop 3
$ git stash apply 3
Mi sembra molto più facile della regex.
git stash push -m stashname
è la sintassi corrente .git stash save stashname
è stato deprecato.