2012-06-06 22 views
5

Acabo de funcionarDeshacer un git pull --rebase?

git pull --rebase 

y se olvidan de especificar "origen". Parece que Git sacó de todas las ramas diferentes. ¿Hay alguna manera de revertir mi repo desde aquí para deshacer el jalón?

Gracias

Respuesta

7

Después de una operación de git pull, ORIG_HEAD deben apuntar al valor anterior de HEAD. Usted debe ser capaz de:

git reset --hard ORIG_HEAD 

y estar de vuelta al punto de partida antes de la operación pull. Puede ejecutar:

git show ORIG_HEAD 

para ver exactamente donde está apuntando ORIG_HEAD antes de ejecutar el comando reset.

Una solución alternativa sería la creación de una nueva rama basado en ORIG_HEAD:

git checkout -b newbranch ORIG_HEAD 

Verificar que las cosas se ven de la forma esperada, a continuación, elimine el antiguo brazo y cambiar el nombre new branch.

También vea this question para una discusión de HEAD y ORIG_HEAD y sintaxis alternativas para referirse a la misma cosa.

2

Uso git reflog

Usted verá un montón de la cabeza se compromete a que son del pasado.

más segura es la comprobación del HEAD que necesita en una nueva rama y continuar desde allí

git checkout -b phew [email protected]{x} # fill in the number of the commit you need. 
1

Recuperación de una borked/estúpida rebase/moribunda

Accidentalmente me corrieron git pull origin master --rebase en lugar de git pull origin develop --rebase.

Solo quería revertir lo que sucedió después de la rebase y volver a la última confirmación. No empujé a la rama remota.

Fue un gran error y quiero salir de la fusión.

La forma más rápida de salir de la fusión es git rebase --abort