Altro
Come nominare e recuperare uno stash per nome in git?
Ho sempre avuto l'impressione che si potesse dare un nome ad uno stash facendo git stash save stashname
, che si poteva poi applicare facendo git stash apply stashname
. Ma sembra che in questo caso tutto ciò che accade è che stashname
sarà usato come descrizione dello stash.
Non c'è modo di nominare effettivamente uno stash? Se no, cosa consigliereste per ottenere una funzionalità equivalente? Essenzialmente ho un piccolo stash che vorrei periodicamente applicare, ma non voglio dover sempre cacciare in git stash list
quale sia il suo effettivo numero di stash.
1263
3
Ecco come si fa:
Dove
"my_stash"
è il nome dello stash.Alcune altre cose utili da sapere: Tutti gli stash sono memorizzati in una pila. Tipo:
Questo elencherà tutte le tue scorte.
Per applicare uno stash e rimuoverlo dalla pila degli stash, digitate:
Per applicare uno stash e mantenerlo nella pila degli stash, scrivi:
Dove
n
è l'indice della modifica memorizzata.Puoi trasformare una scorta in un ramo se lo ritieni abbastanza importante:
dalla pagina man:
Questo crea e controlla un nuovo ramo chiamato
a partire dal commit al quale lo
è stato originariamente creato, applica le modifiche registrate inal nuovo albero di lavoro e all'indice, quindi abbandona lo
se questo si conclude con successo. Quando nessun `` è dato, applica l'ultimo.Questo è utile se il ramo su cui hai eseguito
git stash save
è cambiato abbastanza da far fallire git stash apply a causa di conflitti. Poiché lo stash viene applicato sopra il commit che era HEAD nel momento in cui git stash è stato eseguito, ripristina lo stato originariamente stash senza conflitti.In seguito si può fare il rebase di questo nuovo ramo in qualche altro posto che sia un discendente di dove si era quando si è fatto lo stash.
Gli stack non sono pensati per essere cose permanenti come vuoi tu. Probabilmente sarebbe meglio usare i tag sui commit. Costruite la cosa che volete mettere da parte. Fai un commit da esso. Crea un tag per quel commit. Poi fai rollback del tuo ramo su
HEAD^
. Ora, quando vuoi riapplicare quello stash puoi usaregit cherry-pick -n tagname
(-n
è--no-commit
).