2011-02-07 20 views
7

Yo obtener un fichero con mis últimos cambios a la cabeza por error ..Deshacer "git checkout CABEZA foo.c" en SCM git

git checkout HEAD foo.c 

eso significa que he perdido todos mis cambios que quería comprometerse. ..

¿hay alguna manera de encontrar estos cambios en git cache o en algún historial local?

Respuesta

3

A menos que la haya cometido, (o la haya ocultado o agregado al índice), git no sabrá de sus cambios locales. Entonces, no.

7

si no ha guardado los cambios en el archivo mientras trabajaba (y luego los restauró), entonces hay poco que puede hacer al respecto.

si ha agregado los cambios del archivo usando git add (probablemente lo haya hecho, porque estaba a punto de comprometerse), entonces el blob ya debería estar en git's db. puede usar git fsck para encontrar objetos colgantes. busque blobs e inspecciónelos todos, ya sea usando git show o git cat-file - (lleva tiempo, lo sé ...), pero si tiene suerte, encontrará el contenido de su archivo. use git cat-file blob $hash_of_object > foo.c haga para recuperar el contenido de su archivo

+0

¡no hay suerte, pero de todos modos, gracias! – Mesut

+0

Mesut, ¿En absoluto lo agregaste a git, para esperar alguna forma de capacidad de restauración? –

+0

sí, ya estaba en el repositorio pero perdí los últimos cambios que hice hoy ... – Mesut