git - remove - rebase en progreso. No se puede comprometer. ¿Cómo proceder o detener(abortar)?
git tag best practices (8)
Configuré mi
git
para
autobase
en un
git checkout
# in my ~/.gitconfig file
[branch]
autosetupmerge = always
autosetuprebase = always
De lo contrario, se fusiona automáticamente cuando cambias entre ramas, lo que creo que es la peor opción posible por defecto.
Sin embargo, esto tiene un efecto secundario, cuando cambio a una rama y luego
git cherry-pick <commit-id>
termino en este estado
extraño
cada vez que tiene un conflicto.
De hecho, tengo que abortar el
rebase
, pero primero soluciono el conflicto,
git add /path/to/file
el archivo (¿otra forma muy extraña de resolver el conflicto en este caso?!), Luego hago un
git commit -i /path/to/file
.
Ahora puedo abortar el
rebase
:
git checkout <other-branch>
git cherry-pick <commit-id>
...edit-conflict(s)...
git add path/to/file
git commit -i path/to/file
git rebase --abort
git commit .
git push --force origin <other-branch>
El segundo
git commit .
Parece provenir del aborto.
rebase
mi respuesta si descubro que debo abortar el
rebase
antes.
La
--force
en el empuje es necesaria si omite otras confirmaciones y ambas ramas no son
uniformes
(ambas faltan confirmaciones de la otra).
Cuando corro:
git status
Veo esto:
rebase in progress; onto 9c168a5
You are currently rebasing branch ''master'' on ''9c168a5''.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working directory clean
Cuando lo hago:
ls `git rev-parse --git-dir` | grep rebase || echo no rebase
Ya veo: rebase-apply
No puedo comprometerme con el origen.
git branch
Muestra:
* (no branch, rebasing master)
develop
master
Estoy atascado.
¿No se que hacer?
¿Realmente lleva tanto tiempo rebase?
git rebase --continue
no hace nada.
No tengo nada en estado git. Solo estoy esperando el rebase.
¿Que puedo hacer?
UDATE: esta es la salida de: git rebase --continue
Applying: no message
No changes - did you forget to use ''git add''?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
git add. tiene nada.
El mío fue un error que apareció de BitBucket.
Ran
git am --skip
arregló.
Entré en este estado recientemente.
Después de resolver conflictos durante un rebase, cometí mis cambios, en lugar de ejecutar
git rebase --continue
.
Esto produce los mismos mensajes que vio cuando ejecutó su
git status
git rebase --continue
y
git rebase --continue
comandos.
git rebase --abort
el problema ejecutando
git rebase --abort
, y luego volví a ejecutar el rebase.
Es probable que también se salte el rebase, pero no estaba seguro de en qué estado me dejaría.
$ git rebase --continue
Applying: <commit message>
No changes - did you forget to use ''git add''?
If there is nothing left to stage, chances are that something else
already introduced the same changes; you might want to skip this patch.
When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
$ git status
rebase in progress; onto 4df0775
You are currently rebasing branch ''<local-branch-name>'' on ''4df0775''.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working directory clean
Le dijiste a tu repositorio que rebase.
Parece que estaba en una confirmación (identificada por SHA 9c168a5) y luego hizo
git rebase master
o
git pull --rebase master
.
Estás volviendo a crear la rama maestra en esa confirmación.
Puede finalizar el rebase mediante
git rebase --abort
.
Esto volvería al estado en el que se encontraba antes de comenzar a rebasear.
Me quedé atrapado en el ''estado de rebase'', me puse
On branch master
Your branch is up to date with ''origin/master''.
You are currently rebasing.
(all conflicts fixed: run "git rebase --continue")
nothing to commit, working tree clean
pero ejecutando
git rebase --skip
produjo un
error: could not read ''.git/rebase-apply/head-name'': No such file or directory
.
Ejecutar
rm -fr ".git/rebase-apply"
ayudó.
Nota: por supuesto, hágalo solo si no le importa el rebase o si está atrapado en un rebase anterior que ya no desea.
Rebase no sucede en segundo plano.
"rebase en progreso" significa que usted inició un rebase, y el rebase fue interrumpido debido a un conflicto.
Debe reanudar el rebase (
git rebase --continue
) o abortarlo (
git rebase --abort
).
Como sugiere el mensaje de error de
git rebase --continue
, le pediste a git que aplique un parche que resulta en un parche vacío.
Lo más probable es que esto signifique que el parche ya se aplicó y que desea soltarlo usando
git rebase --skip
.
-
Paso 1: continúa
git rebase --continue
-
Paso 2: arregle los CONFLICTOS y luego
git add .
-
Regrese al paso 1, ahora si dice que
no changes ..
ejecutegit rebase --skip
luego regrese al paso 1 -
Si solo desea salir de rebase, ejecute
git rebase --abort
-
Una vez que se hayan realizado todos los cambios, ejecute
git commit -m "rebase complete"
y listo.