2012-04-03 16 views
15

Questo errore sembra molto sciocco, ho appena fatto uno git stash pop su un albero di lavoro sporco. Non conosco alcun modo per mantenere le modifiche desiderate e annullare il stash pop. Esiste? O un tale errore è imperdonabile?Annulla git stash pop su albero di lavoro sporco

risposta

8

Se si dispone ancora di SHA1 di quella memoria, è possibile generare una patch (git format-patch SHA1) e applicare la patch al contrario (git apply -R filename.patch).

Se hai perso la SHA1, vedere How to recover a dropped stash in Git?

+0

Come si crea un patchfile con il comando format-patch? – meson10

+0

Il comando dato crea una patch per il commit 'SHA1'. – adl

+1

Questo non sembra funzionare per le unioni; quando ho fatto 'git stash pop' sulla mia directory di lavoro sporca, ha unito le modifiche nascoste, quindi' git format-patch SHA1' non ha fatto nulla. Qualche idea per una soluzione alternativa? – Will

1

git stash pop fa 2 cose: git stash apply e git stash drop. Se è possibile annullare drop, utilizzando this question and answers, è sufficiente annullare l'apply. Non sono sicuro di come farlo, ma è possibile esaminare git rebase. ma ADL lo fa.