tag remove practices crear best git git-rebase

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.


Otra opción para ABORTAR / SALTAR / CONTINUAR desde IDE

VCS> Git> Abortar Rebasing


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 .. ejecute git 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.