2010-10-18 18 views
6

me pasó una git pull --rebase y abortado esto después de la fijación de varios Merge-conflictos utilizando git rebase --abort.Git: restaurar repositorio se separaron después de fallidos rebase

Antes del intento de rebase, git status me dijo: "Su sucursal está por delante de 'origin/master' en 20 commits". Ahora entiendo: "Su rama y 'origen/maestro' han divergido, y tienen 15 y 5 compromisos diferentes cada uno, respectivamente."

que ya lo han hecho un reset a la última confirmación (git reset --hard c15...e30), pero el mensaje de estado sigue siendo el mismo.

¿Cómo puedo volver a mi repositorio para el estado se fue antes de que comenzara el desorden? ¿Y cuál es la diferencia entre el estado actual y el anterior?

Gracias.

+1

¿Qué informe de estado git como su rama actual (la primera línea de la salida)? Además, como referencia, ¿cuáles son los valores hash de confirmación relevantes para origin/master, yourbranch y dónde se encuentra ahora (arriba de "git log")? Use gitk --all para darle una mejor imagen si la necesita. –

Respuesta

1

El git rebase --abort debería haber llevado de vuelta a su cabeza original. No estoy seguro de a qué se refería al "arreglar varios conflictos de combinación usando ... abortar". ¿Quería decir --continue?

De todos modos, lo que hay que hacer ahora es consultar la reflog. El reflog es un registro temporal local de donde han estado todas sus referencias. Si mira .git/logs/HEAD, puede ver dónde ha estado HEAD (el conjunto de trabajo). Debajo de .git/logs/refs/... puede ver dónde han estado todas sus sucursales (local y remota). Cada línea en el registro refleja alguna acción. El SHA inicial, final, usuario, hora y una cadena que describe qué acción causó el cambio. Puede encontrar el que desee y reset de nuevo.