2010-07-15 12 views
12

Lamentablemente hice varias veces git reset --hard HEAD^ perdiendo una gran cantidad de código en varios archivos. ¿Hay alguna forma de restablecer esos commits o, en este caso, reenviar donde estaba HEAD antes, así que puedo mostrar esas líneas que perdí?restore - git reset --hard HEAD^

Respuesta

17

Utilice reflog para recuperar el sha1 del HEAD anterior. En particular, el artículo reflog, your safety net será particularmente relevante para usted. A partir de ese artículo:

El uso más común de este comando es que se acaba de hacer un git reset y movió sus HEAD detrás algunos confirmaciones. Pero vaya, necesitas ese pedazo de código que dejaste en el segundo compromiso. Mierda. ¿Ahora que?

Una vez que haya encontrado el sha1 de una confirmación desea volver a, usar algo como:

git reset --hard 0a1b2c 
+0

Gran! Gracias que hicieron el trabajo a la perfección. – Lan

+3

También puede restablecer a 'HEAD @ {n}', encontrando el n apropiado del reflog –

+0

También se puede ver el reflog con 'git log -g', que podría proporcionar un poco más de contexto que' git reflog show'. –

Cuestiones relacionadas