2012-01-17 4 views
21

Estaba probando algo con un par de ramas, así que volví a instalar una rama temporal y estaba en el medio de resolver algunos conflictos cuando decidí no hacerlo completa la rebase de otra manera. Luego eliminé la rama temporal involucrada y seguí mi camino feliz. Un par de horas más tarde me quería rebasar otra rama y obtener este mensaje de errorgit rebase y borrado de las ramas de rebasamiento que causan el mensaje de error "Rebase interactivo ya iniciado"

Interactive rebase already started 

git rebase --abort muestra este mensaje de error

error: unable to resolve reference refs/heads/tmp/rails3-rails-2-fixes: No such file or directory 
fatal: Cannot lock the ref 'refs/heads/tmp/rails3-rails-2-fixes'. 
Could not move back to refs/heads/tmp/rails3-rails-2-fixes 

Intentó simplemente crear otra rama llamada tmp/rails3-rails-2-fixes pero no dados

¿Alguna idea de cómo puedo resolver esto?

Respuesta

18

Hm, eso es incómodo. Recrear la sucursal también fue mi primer intento. De lo contrario, debería poder eliminar el directorio .git/rebase-merge, que contiene el estado rebase. (En cambio, aléjalo para estar seguro, si lo desea). Una vez que eso se haya ido, Git no debería tener ninguna forma de saber que había una rebase en progreso. ¡Eche un vistazo a sus sucursales para asegurarse de que no haya logrado perder compromisos en el proceso, y estará bien!

+1

Eso funcionó y hasta ahora no puedo ver ningún compromiso perdido, muchas gracias me has ahorrado muchas molestias: D – tee

9

revisa el git status y mira si no compras una rama después de la última rebase, entonces no estás en ninguna rama.

becase que rebase la transferencia a un área no rama, por lo que tiene que abortar el último rebase utilizando git rebase --abort comando, y obtenga una rama de ir en la rama y comenzar un nuevo cambio de base

+0

He podido verificar otras ramas desde entonces, que es una de las razones por las que no me di cuenta hasta que traté de volver a establecer otra base de datos – tee

+0

sí, puede acceder a la cuenta en cualquier momento. pero esta es la funcionalidad de git, no avisará cuando finalice la actualización. pero adivino sobre la opción de continuar y abortar cuando ocurre un conflicto – Dau

+0

Ya git rebase --abort pero recibí el mensaje de error anterior, ¿alguna otra solución posible? – tee

1

Acabo de recibir un error muy similar durante un intento de rebase que no falló. Ninguno de los consejos anteriores ayudó. Esto es lo que estaba viendo:

$ git pull --rebase 
warning: refname 'xport1' is ambiguous. 
First, rewinding head to replay your work on top of it... 
Fast-forwarded xport1 to 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242. 
error: Ref refs/heads/xport1 is at 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242 but expected 3865d63ffb3a1a495363bfbd9ebb089e16152839 
fatal: Cannot lock the ref 'refs/heads/xport1'. 
Could not move back to refs/heads/xport1 

Resulta que si un nombre de referencia es ambigua, el rebase fallará, al menos en la versión git 1.7.10.2 (Apple Git-33). Me asomé y vi que había creado accidentalmente una etiqueta con el mismo nombre que la rama en la que intentaba volver a establecer la base. Eliminar la etiqueta eliminó este error.