Deshacer un alijo de git

337

Acabo de esconder un proyecto que no he comprometido. ¿Hay alguna manera de volver al estado antes de que me escondiera? ¿Cómo podría hacer esto? He cerrado la terminal y mi computadora portátil está apagada. He investigado un poco y parece que no hay forma de hacerlo.

adit
fuente
Publicación relacionada aquí .
RBT

Respuestas:

653

Solo puedes ejecutar:

git stash pop

y eliminará sus cambios.

Si desea preservar el estado de los archivos (por etapas versus trabajo), use

git stash apply --index
ziad-saab
fuente
10
Bueno, no del todo. No restablecerá lo que está en el directorio de preparación, por lo que tendrá que volver a configurar todo eso (lo que puede ser molesto si acaba de hacer un complejo git add -p
Nick
No funciono para mi. Tengo un error: mymodule/MyClass.java: needs merge - unable to refresh index. Evitar una fusión manual era precisamente mi objetivo cuando usaba git stash pop...
TanguyP
Salvó mi vida. Pensé que todos mis cambios desaparecieron y necesito todas las cosas nuevamente. Gracias
Ankit Shah
@TanguyP, ¿cuál fue su solución al final?
theonlygusti
119

git stash list para enumerar sus cambios escondidos.

git stash showpara ver qué nhay en los siguientes comandos.

git stash apply para aplicar el alijo más reciente.

git stash apply stash@{n} para aplicar un alijo más viejo.

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

Entidad omnipotente
fuente
1
también "git stash show" después de "git stash list" solo para completar esta excelente respuesta e identificar mejor con qué reemplazar n. ¡Resulta que tengo cosas escondidas de archivos que ya no existen!
JimLohse
15

Esto también restaurará el directorio de preparación:

git stash apply --index
Wisbucky
fuente