Logré crear un pequeño desastre en mi repositorio local de git. Estaba tratando de arreglar un commit roto usando las siguientes instrucciones . Antes de ejecutar el "git commit --amend" (y después del git rebase --interactive) decidí que mis cambios eran incorrectos y ejecuté "git reset HEAD --hard". No es una buena idea, te lo digo.
Ahora el rebase interactivo parece estar "atascado". 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: continúe:
$ 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 en que estaba 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.
fuente
git rebase --quit
funcionó para míRespuestas:
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.fuente
git rebase --abort
(de stackoverflow.com/a/4757777/146044 ) hizo el trabajo.git rebase --abort
no funcionaba)git rebase --abort
y borró mis cambios no organizados ... aunque el error desapareciógit rebase --abort
todavía me dio los errores.git rebase --quit
trabajó para mi.Me quedé atrapado en esto. Creé el archivo de nombre de cabecera, 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 que no podía leer '.git / rebase-apply / onto': No existe tal archivo o directorio.
Así que miré la documentación de git para rebase y encontré otro comando:
Esto me devolvió a mi rama sin cambios, y pude comenzar mi rebase nuevamente, como nuevo.
fuente
git rebase --quit
¡era que!--quit
trabajó.--abort
no porque el rebase fue cancelado a mitad de camino$ git rebase --abort
Salida:error: could not read '.git/rebase-apply/head-name': No such file or directory
Finalmente, esta solución soluciona mi problema:git rebase --quit
git rebase --quit
Absolutamente me salvó. Los mismos síntomas que se describen, pero los míos aparecieron después de intentar hacer ungit pull --rebase
, que por alguna razón falló. Tenga en cuenta que tenía habilitado el autostash (git versión 2.27.0.windows.1) y tenía VS2019 ejecutándose (señaló ese repositorio) al mismo tiempo; sospecho que alguna combinación de estos lo estropeó.Tuve un problema similar debido a un proceso zombie vim.exe. Matarlo en el Administrador de tareas, seguido de un
git rebase --abort
reparado.fuente
handle
comando sysinternals y vi que un proceso (sh.exe) tenía el archivo bloqueado. El uso lopskill <pid>
arregló para mí.Gracias @Laura Slocum por tu respuesta
Arruiné las cosas mientras rebase y obtuve un HEAD separado con
eso me impidió terminar el rebase.
La CABEZA separada parece contener precisamente mi estado de rebase correcto, así que corrí
y después de eso revisé una nueva rama temporal para unirla a la cabeza separada.
Al compararlo con la rama que quería reajustar, puedo ver que la nueva rama temporal está exactamente en el estado que quería alcanzar. Gracias
fuente
Tuve el mismo problema en Eclipse. No se pudo Rebase => abortar de Eclipse.
Ejecutar git rebase --abort desde Git Bash Funcionó para mí.
fuente
En Windows, si no desea o no puede reiniciar la máquina, consulte a continuación.
Instale Process Explorer: https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
En el Explorador de procesos, Buscar> Identificador de archivo o DLL ...
Escriba el nombre del archivo mencionado en el error (para mi error fue 'git-rebase-todo' pero en la pregunta anterior, 'hecho').
Process Explorer resaltará el proceso manteniendo un bloqueo en el archivo (para mí fue 'grep').
Elimine el proceso y podrá abortar la acción git de la manera estándar.
fuente
Crea un archivo con este nombre:
y que usar
git rebase
fuente
En mi caso más fuerte
git rebase --abort
ygit rebase --continue
estaba tirando:Logré solucionar este problema eliminando manualmente:
.git\rebase-apply
directorio.fuente
Estoy usando
git version 2.19.2.windows.1
.lo único que funcionó para mí fue eliminar el
.git/rebase-apply/
directorio y hacer ungit reset --hard
.fuente
En mi caso, fue porque había abierto SmartGit's Log en el proyecto Git respectivo y Total Commander en el directorio del proyecto respectivo. Cuando cerré ambos pude volver a crear sin problemas.
Cuanto más lo pienso, más sospecho de Total Commander, es decir, Windows tiene un bloqueo en el directorio abierto con el que git rebase estaba tratando de hacer algo.
Consejo amistoso: cuando intente arreglar algo, siempre haga un cambio a la vez. ;)
fuente
He intentado todos los pasos anteriores mencionados pero nada funcionó para mí. Finalmente, reiniciar la computadora funcionó para este problema: D
fuente
Con SublimeText 3 en Windows, el problema se soluciona simplemente cerrando las ventanas Sublime utilizadas para la edición interactiva de confirmación.
fuente
Una vez que haya completado satisfactoriamente el rebase X número de confirmaciones, el último comando debe ser
git rebase --continue
. Eso completa el proceso y sale del modo rebase.fuente
Yo tuve el mismo problema. Utilicé el explorador de procesos como se sugirió en otra publicación (no puedo encontrar esa publicación) y descubrí qué proceso tiene un bloqueo en el archivo y lo eliminé. luego ejecute --continue o --abort según las necesidades
fuente
En mi caso, después de probar todas estas opciones y aún tener problemas, probé
sudo git rebase --abort
e hizo todofuente
Probé todo lo demás excepto un reinicio, lo que funcionó para mí es
rm -fr .git/REBASE_HEAD
fuente
Si se encuentra por debajo del estado y el rebase ya no funciona,
Entonces primero corre,
Y luego restaurar el estado anterior de reflog,
Utilizando,
fuente
Estoy usando git en eclipse y estaba teniendo el mismo problema.
Finalmente descubrí que la entrada del menú "Rebase ..." se transformó temporalmente en un submenú.
Equipo-> Rebase -> Abortar
Funcionó para mi.
fuente