No se pueden enviar cambios después de usar git reset hard hard
Tuve un error y cometí algunos cambios en git que no debería haber cometido. Después de hacer el commit, empujé mis cambios. Luego usé los siguientes comandos para intentar restablecer mis cambios.
git reset --hard head
Ahora quiero empujar este 'reset' al repositorio remoto con este comando:
git push MyBranch
Pero estoy recibiendo este error:
remote: error: denying non-fast-forward refs/heads/branch (you should pull first)
Traté de usar este comando sin ningún éxito:
git push -f "origin"
¿Alguna idea de lo que puedo hacer?
2 answers
git push -f origin myBranch
Debería funcionar (siempre que sepa que esto puede ser peligroso si MyBranch ya fue recuperado por otros en su propio repositorio)
Nota: si su repositorio remoto ('origin') tiene su config establecido con
receive.denyNonFastForwards true
Negará cualquier empuje no hacia adelante rápido (incluso cuando se fuerce).
Ver " ¿Hay alguna forma de configurar el repositorio git para rechazar 'git push force force'?".
El OP user654019 informa
Me las arreglé para resolver el problema esta vez estableciendo
denyNonFastForwards
afalse
y usando-f
para forzar el empuje
Si el OP no tenía acceso al repositorio, tendría que:
- restablecer la CABEZA local a su posición original (ver " Recuperarse de
git reset --hard?
"):git reset HEAD@{1}
- haga un nuevo commit que cancele su fusión, como se describe en el libro de ProGit , con
git revert
:git revert -m 1 HEAD~
(en su caso)
Por ejemplo:
$ git revert -m 1 [sha_of_C8]
Finished one revert.
[master 88edd6d] Revert "Merge branch 'jk/post-checkout'"
1 files changed, 0 insertions(+), 2 deletions(-)
Una discusión completa sobre cómo revertir una fusión puede encontrarse aquí.
La idea sigue siendo generar solo nuevas confirmaciones, incluyendo una que revierta los cambios introducidos por la confirmación de fusión.
A continuación, puede impulsar ese nuevo compromiso, como un cambio de avance rápido.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 11:54:29
Necesita especificar qué referencia desea enviar:
git push -f origin MyBranch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-21 12:12:47