2012-01-05 10 views
10

El otro día intenté realizar algunos cambios en el servidor remoto.Posiblemente haya perdido algunos cambios a través de git

Obtengo un error así que miré para ver en qué rama estaba.

Vi que no era una rama indefinida localmente, lo cual era realmente extraño, así que revisé master y luego pude presionar.

Acabo de comprobar la fusión y ninguno de mis cambios estaba allí. No están aquí localmente. Más de 10 horas de trabajo, y no puedo encontrarlo en ningún lado.

Hice un gitk y no veo ninguno de mis cambios. Veo una fusión de maestro que tiene este aspecto:

Author: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Committer: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Parent: 1a294db3a244d7aeaafbc99c986af86ce7cf17da (Merge branch 'master' of https://github.com/thing/thing) 
Parent: 8ed995c7a5a370333ab27485be07f6a5f647e8d4 (added subscription button to edit profile section) 
Child: 0dbf7e53737c0e7ee7ab908812299c1d60ef0c46 (removed coffee icon on getting started) 
Branches: master, remotes/origin/master 
Follows: 
Precedes: 

    Merge branch 'master' of https://github.com/thing/thing 

no soy el único que comprometerse con este proyecto, no sé cómo llegué en una rama definida localmente. ¿Puede alguien sugerir una solución? Preocupado por perder mucho trabajo.

gracias.

+0

Solo puede llegar a una "rama indefinida" (supongo que se refiere a la cabeza separada) a través de sus propias acciones. Es posible que haya intentado fusionarse y no haya notado que hubo conflictos. – meagar

+0

@meagar: Merge, conflict o no, no separa HEAD. Rebase lo hace! – Cascabel

+0

@Jefromi cierto. Estoy acostumbrado a 'git pull --rebase'ing – meagar

Respuesta

17

Comprobar

git reflog 

que le dará un historial de operaciones, y si los cambios se verificaron en, van a estar en una revisión en algún lugar de ese registro.

También puede buscar a la salida:

git rev-list --all --header HEAD 

Esto mostrará una gran parte de lo que hay en el repositorio. Es posible que deba trabajar con -n para limitar, y la salida es un poco confusa. Eche un vistazo a la página man para git-rev-list para obtener información adicional. Es de esperar que esto ayude a descubrir dónde estás.

También puede crear una rama en la ubicación actual:

git branch my temporary 

A continuación, utilice gitk

gitk --all 

para tener una idea también.

+0

omg, que lo encontró, muchas gracias. No puedo marcar esto como la respuesta todavía, pero lo haré cuando el límite se agote. –

+0

¡Recientemente descubrí el reflog recientemente después de que me sucedió una situación similar cuando estaba usando git-svn! Pensé que estaba condenado, tres días de trabajo en la balanza, ¡creo que casi lloré cuando encontré la revisión! – PlexQ

+0

Así es como me sentí, fue increíble encontrar que todavía estaba allí. –

Cuestiones relacionadas