2012-05-31 14 views
164

Ho appena fatto una scorta in un progetto che non ho commesso. C'è un modo per tornare allo stato prima che lo nascondessi? Come potrei farlo? Ho chiuso il terminale e il mio laptop è spento. Ho fatto qualche ricerca e sembra che non ci sia modo di farlo.Annulla un git stash

+3

basta applicare la scorta ... – CrimsonDiego

+2

fatto la vostra ricerca comprendono guardando [la documentazione per git-scorta] (http: // git-scm.com/docs/git-stash), che spiega come farlo? –

+0

Post correlati [qui] (https://stackoverflow.com/q/19003009/465053). – RBT

risposta

337

Si può solo eseguire:

git stash pop 

e sarà unstash le modifiche.

Se si vuole preservare lo stato dei file (in scena contro di lavoro), utilizzare

git stash apply --index 
+7

Beh, non proprio. Non resetterà ciò che si trova nella directory di staging, quindi dovrai ripristinarlo tutto (cosa che può essere fastidiosa se avessi appena creato un git add -p – Nick

+0

Grazie! Mi hai salvato molto del mio tempo! – Lecko

+0

Didn Ho un errore: 'mymodule/MyClass.java: ha bisogno di unire - impossibile aggiornare l'indice." Evitare l'unione manuale era esattamente il mio obiettivo quando si utilizzava 'git stash pop' ... – TanguyP

59

git stash list alla lista le modifiche stashed.

git stash show per vedere cosa n è nei seguenti comandi.

git stash apply per applicare lo stash più recente.

git stash apply [email protected]{n} per applicare una scorta precedente.

http://git-scm.com/book/en/Git-Tools-Stashing

+1

anche "git stash show" dopo "git stash list" solo per completare questa eccellente risposta e identificare meglio cosa sostituire n con. Ho roba nascosta da file che non esistono più! – JimLohse

13

Questo sarà anche ripristinare la directory di gestione temporanea:

git stash apply --index