error de git al intentar empujar a la rama remota

3 minutos de lectura

avatar de usuario
usuario429400

He clonado la rama maestra del repositorio A desde git y he creado mi propia rama llamada Li. Hice algunos cambios hace un tiempo y pasé el contenido del Li local al Li remoto.

Ahora saqué algunas actualizaciones del maestro remoto a mi sucursal maestra local y de la sucursal maestra local al Li local, y estoy tratando de enviar las actualizaciones del Li local al Li remoto. Sin embargo, cuando intento ejecutar:

git checkout Li
git push origin Li

Obtuve el siguiente error:

error: failed to push some refs to 'git@github.com:anodejs/system.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

Tenga en cuenta que mi rama maestra local se actualiza (invoqué a git pull origin master) y se fusionó con la rama Li local. Sin embargo, agregué Li local en un nuevo archivo, por lo que Li local no es idéntico al maestro local (pero esto no debería importar, ¿verdad?)

Gracias, li

  • ¿Commitiste cambios en la rama de Li antes de intentar impulsarla?

    – Igor Ganapolski

    22 de abril de 2013 a las 17:28

  • Llegué a esta pregunta con el mismo problema y las respuestas aquí no ayudaron. Resultó que mi problema era que no estaba en una sucursal; consulte stackoverflow.com/a/18601467/5002633 para saber cómo lo diagnostiqué/arreglé.

    – Eborbob

    19 de julio de 2016 a las 15:13

avatar de usuario
Siva Kandaraj

Las actualizaciones fueron rechazadas porque una punta de rama empujada está detrás de su control remoto.

git config --global push.default current

Pruebe el comando anterior para configurar la rama actual como predeterminada y

git push

  • Tenga en cuenta que este comando cambia el comportamiento fundamental de git push, que a menudo, pero no siempre, es intencionado. Los usuarios que quieran saber cuáles son esos comportamientos pueden ver esta pregunta o esta pregunta.

    – Cristóbal

    8 de noviembre de 2013 a las 3:17


Encuentra la diferencia con git fetch && git log Li..origin/Li. Supongo que has rebasado o recortado de otra manera Li desde la última vez que presionó, pero ese comando debería decirle exactamente qué hay en el control remoto que no está en el local. Puede encontrar lo que hay en cualquiera (pero no en ambos) con la sintaxis de tres puntos: git log Li...origin/Li.

Si se espera la diferencia, simplemente fusione con git merge origin/Li y entonces git push. Si el cambio no es deseado, sobrescriba el control remoto con git push -f origin Li. Solo haga esto si desea abandonar los cambios del control remoto.

  • Cuando invoco el comando fetch&&log, puedo ver que hay una solicitud de extracción de combinación desde origin/master. Pero cuando intento “git merge origin/Li” veo que no hay nada que fusionar (¡ya está actualizado!). Creo que push -f funcionará, pero creo que si lo averiguo me ayudará a entender git

    – usuario429400

    13 de agosto de 2012 a las 14:15


  • se rindió, optó por push -f, que resolvió el problema como dijiste. Gracias

    – usuario429400

    19 de agosto de 2012 a las 20:45

  • Muchas gracias. Leí algunos consejos sobre StackOverflow, pero nada me funcionó excepto esto. Me hiciste feliz, porque no he perdido mi buen humor solo por un problema con git 🙂 Es un poco frustrante cuando estás probando solución por solución y sigues recibiendo el mismo mensaje de error ;D Muy bien

    – Tomasz Kuter

    29/04/2014 a las 15:55

Puede forzar cambios de inserción a la dirección remota, pero puede producir una nueva rama remota

git push subtree_remote_address.git `git subtree split --prefix=subtree_folder`:refs/heads/branch --force

rama git –set-upstream-to=origen/maestro

Si tiene el error cuando está en la rama ‘maestra’, intente con el siguiente comando:

rama git –set-upstream-to=origen/maestro

O un atajo: git push -u origin master

¿Ha sido útil esta solución?