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.


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

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


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.