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.


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

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


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.