¿Cómo arreglar la rebase interactiva "dañada"?
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.
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.
Parece que Git intentó eliminar el .git/rebase-merge
directorio pero no pudo eliminarlo por completo. ¿Has intentado copiar esa carpeta? También copie la .git/rebase-apply
carpeta si está presente.