Git rebase fallando

1 minuto de lectura

avatar de usuario
Búnker

Estoy tratando de rebasar el trabajo de un colega.

Primero, obtengo un montón de conflictos donde <<<<< costuras de cabeza para contener el nuevo código.

Luego, después de un tiempo, aparece el siguiente error:

fatal: update_ref failed for ref 'refs/heads/dev_504': 
cannot lock ref     'refs/heads/dev_504': ref refs/heads/dev_504 is at
 XXXXXXX 
 but expected     XXXXXXXX
Could not move back to refs/heads/dev_504

Luego, si trato de continuar de todos modos, aparece el siguiente error:

fatal: cannot resume: .git/rebase-apply/final-commit does not exist.

¿Cómo puedo arreglar esto para que la rebase no dé un error?

  • echa un vistazo a stackoverflow.com/questions/3685001/…. podría ayudar

    – Gérard Rozsavolgyi

    9 de enero de 2016 a las 15:05

  • ¿Intentó empezar de nuevo después de un git rebase --abort?

    – dahlbyk

    21/09/2016 a las 18:09

  • ¿Cuál fue el primer comando que usaste?

    – Simón PA

    23 de septiembre de 2016 a las 14:16


  • ¡”git rebase –abort” funcionó para mí!

    – notilas

    15 de febrero de 2017 a las 17:51

avatar de usuario
Delgado KTARI

  • Tu puedes correr git rebase --abort para deshacer completamente el rebase. Git lo devolverá al estado de su rama tal como estaba antes de que se llamara a git rebase.

  • Tu puedes correr git rebase --skip para omitir completamente la confirmación. Eso significa que no se incluirá ninguno de los cambios introducidos por el compromiso problemático. Es muy raro que elijas esta opción.

  • Puedes arreglar el conflicto.

  • De lo contrario, debe volver a crear su rama o puede eliminar el directorio .git/rebase-merge, que contiene el estado de rebase.

  • No estoy seguro de que se aplique el tercer punto (arreglar el conflicto). OP ya solucionó el conflicto, el mensaje de error aparece después de ejecutar git rebase --continue

    – Quiram

    4 de febrero de 2019 a las 9:50

  • ` % git rebase –skip 🙁 git: builtin/am.c:1981: am_skip: Afirmación !is_null_oid(&state->orig_commit)' failed. error: am died of signal 6

    – usuario7610

    20 de mayo de 2020 a las 10:15

Aparentemente, la rama en la que desea volver a establecer la base también se volvió a establecer entre el momento en que se ramificó, tal vez limpiando el historial o rebasando en otra rama. Si es así, necesita:

  • abortar, desorden actual:git rebase --abort
  • ser actual: git fetch
  • ahora la parte interesante:

    git rebase --onto BUDDY_BRANCH YOUR_BRANCH~ YOUR_BRANCH

por ejemplo, sucursal de su local Maestro (checkout de origen/maestro), una nueva sucursal prueba_rama (que ahora desea actualizar con el origen/maestro actual)

git rebase --onto master test_branch~ test_branch

Lo que esto hace es en términos simples, toma la confirmación principal inicial de sus sucursales, encuentra su contraparte en el maestro actual y se reorganiza en base a eso.

  • ¡Esta es la verdadera respuesta! Para cambiar la base de su rama maestra local en origen/maestro, ingrese git rebase --onto origin/master master~ master

    – Simétrico

    12 de febrero de 2019 a las 17:09

Cuando está actualizando su sucursal local con la otra sucursal, debe resolver los conflictos eligiendo entre sus modificaciones y las de ellos. Después de resolver los conflictos, puede continuar su reorganización escribiendo este comando git:

git rebase --continue

En caso de que desee abortar su acción de reorganización, puede escribir este comando git:

`git rebase --abort`

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad