¿Cómo arreglar la rebase interactiva "dañada"?

Resuelto Mikael Koskinen asked hace 14 años • 21 respuestas

Logré crear un pequeño desorden en mi repositorio local de git. Estaba intentando arreglar una confirmación rota siguiendo las siguientes instrucciones . Antes de ejecutar "git commit --amend" (y después de git rebase --interactive) decidí que mis cambios eran incorrectos y ejecuté "git reset HEAD --hard". No es buena idea, te lo digo.

Ahora la rebase interactiva parece estar "atascada". Git muestra la rama actual como (|REBASE-m). Cada comando (cd .., ls, git rebase...) dentro de mi repositorio da el siguiente error:

cat: .git/rebase-merge/head-name: No existe tal archivo o directorio

Así es como se ve git rebase --abort:

$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory

Aquí está el resultado de git rebase --continuar:

$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory

¿Algunas ideas? Me gustaría restablecer la situación al estado que tenía antes de comenzar mi bien pensada operación de rebase.

Así es como git log --oneline muestra la situación:

4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script

Y esto está bien.

Estoy usando msysgit v1.7.0.2.

Mikael Koskinen avatar Sep 10 '10 20:09 Mikael Koskinen
Aceptado

Me quedé atrapado en esto. Creé el archivo del nombre del encabezado y luego me encontré con otro error que decía que no podía encontrar el archivo, así que creé ese archivo. Luego recibí otro error que decía no se podía leer '.git/rebase-apply/onto': No existe tal archivo o directorio.

Entonces miré la documentación de git para rebasar y encontré otro comando:

git rebase --quit

Esto me devolvió a mi rama sin cambios y pude comenzar mi rebase nuevamente, como nuevo.

Laura Slocum avatar Feb 28 '2019 20:02 Laura Slocum

Parece que Git intentó eliminar el .git/rebase-mergedirectorio pero no pudo eliminarlo por completo. ¿Has intentado copiar esa carpeta? También copie la .git/rebase-applycarpeta si está presente.

Martin Owen avatar Sep 10 '2010 18:09 Martin Owen