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^
12
A
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ó susHEAD
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
Run git reset --hard [email protected]{1}
si sólo comprometido su código y desea deshacer eso.
Ver sección llamada "ordinal Spec" en http://book.git-scm.com/4_git_treeishes.html
Cuestiones relacionadas
- 1. git reset --hard HEAD deja archivos sin seguimiento detrás de
- 2. ¿Cómo reinicio git --hard HEAD en Mercurial?
- 3. Git push failed after 'git reset --hard HEAD ~ 1' of repo local
- 4. ¿Cuál es la diferencia entre "git checkout -f" y "git reset --hard HEAD"?
- 5. Equivalente a "git reset --hard" con SVN
- 6. ¿Cuál es la diferencia entre git reset --hard y git reset --merge
- 7. ¿Cómo uso 'git reset --hard HEAD' para volver a una confirmación anterior?
- 8. Git: reset --hard ahora estoy atorado en el pasado
- 9. Cómo git reset --hard todo menos 4 archivos
- 10. ¿Hay alguna diferencia entre el reinicio de git --hard HEAD y git checkout ?.
- 11. "git checkout tag-name" frente a "git reset --hard tag-name"
- 12. ¿`git reset HEAD file` también revisa el archivo?
- 13. puesta en escena, pero no comprometidos, archivos borrados después de emitir: git reset CABEZA --hard
- 14. ¿Hay alguna diferencia entre "git reset --hard hash" y "git checkout hash"?
- 15. No se pueden insertar cambios después de usar git reset --hard
- 16. revertir a una revisión antigua de Mercurial (como git reset)
- 17. ¿Cuál es la diferencia entre git reset --mixed, --soft, y --hard?
- 18. git actualización del índice --assume-sin cambios y git reset
- 19. ¿Cómo hacer un reinicio de git --hard usando gitPython?
- 20. ¿Por qué a veces veo un "Nombre de archivo de entrada" no actualizado. No se puede fusionar ". después de un 'git reset --hard' y un 'git pull'?
- 21. Git/destacó HEAD, ¿recuperar trabajo?
- 22. git svn argumento ambiguo 'HEAD'
- 23. Git. Remote HEAD es ambiguo
- 24. git-svn: reset tracking para el maestro
- 25. ¿Cuál es la diferencia entre "git reset" vs "git rebase"?
- 26. git rm -cached file vs git reset file
- 27. Git Diff entre HEAD y SVN Master
- 28. Git force volver a HEAD ~ 7
- 29. Git remote tiene master pero no HEAD
- 30. ¿Cómo lo corrijo? HEAD^en git
Gran! Gracias que hicieron el trabajo a la perfección. – Lan
También puede restablecer a 'HEAD @ {n}', encontrando el n apropiado del reflog –
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'. –