Annuler une cachette Git

337

Je viens de faire une cachette dans un projet que je n'ai pas engagé. Existe-t-il un moyen de retourner dans l'État avant de me cacher? Comment pourrais-je faire ça? J'ai fermé le terminal et mon ordinateur portable est éteint. J'ai fait quelques recherches et il semble qu'il n'y ait aucun moyen de le faire.

adit
la source
Article connexe ici .
RBT

Réponses:

653

Vous pouvez simplement exécuter:

git stash pop

et il détachera vos modifications.

Si vous souhaitez conserver l'état des fichiers (intermédiaire ou fonctionnel), utilisez

git stash apply --index
ziad-saab
la source
10
Enfin, pas tout à fait. Il ne réinitialisera pas ce qui se trouve dans le répertoire de transfert, vous devrez donc reformuler tout cela (ce qui peut être ennuyeux si vous veniez de faire un git add -p complexe
Nick
Ça n'a pas marché pour moi. Je suis une erreur: mymodule/MyClass.java: needs merge - unable to refresh index. Éviter une fusion manuelle était précisément mon objectif lors de l'utilisation git stash pop...
TanguyP
Sauvé ma vie. Je pensais que tous mes changements avaient disparu et que je devais tout recommencer. Merci
Ankit Shah
@TanguyP alors quelle a été votre solution au final?
theonlygusti
119

git stash list pour répertorier vos modifications cachées.

git stash showpour voir ce qui nest dans les commandes ci-dessous.

git stash apply pour appliquer le stash le plus récent.

git stash apply stash@{n} pour appliquer une ancienne cachette.

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

OmnipotentEntity
la source
1
également "git stash show" après "git stash list" juste pour compléter cette excellente réponse et mieux identifier avec quoi remplacer n. Il s'avère que j'ai des trucs cachés dans des fichiers qui n'existent plus!
JimLohse
15

Cela restaurera également le répertoire de transfert:

git stash apply --index
wisbucky
la source