remoto - No se pueden forzar cambios después de usar git reset--hard
recuperar commit borrado (2)
Tuve un error y cometí algunos cambios en git que no debería haber cometido. Después de hacer la confirmación, impulsé mis cambios. Luego utilicé los siguientes comandos para tratar de restablecer mis cambios.
git reset --hard head
Ahora quiero enviar este ''reinicio'' 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)
Intenté usar este comando sin ningún éxito:
git push -f "origin"
¿Alguna idea de lo que puedo hacer?
Debe especificar qué ref que desea presionar:
git push -f origin MyBranch
git push -f origin myBranch
debería funcionar (siempre que sepas que esto puede ser peligroso si MyBranch ya fue recuperado por otros en su propio repositorio)
Nota: si su repositorio remoto (''origen'') tiene su config establecida con
receive.denyNonFastForwards true
negará cualquier impulso de avance rápido (incluso forzado).
Consulte " ¿Hay una manera de configurar el repositorio git para rechazar ''git push --force''? ".
El OP usuario 654019 reporta
denyNonFastForwards
resolver el problema esta vez configurandodenyNonFastForwards
enfalse
y usando-f
para forzar el empuje
Si el OP no tenía acceso al repositorio, él / ella tendría que:
- restablezca la HEAD local a su posición original (consulte " Recuperar de
git reset --hard?
"):
git reset HEAD@{1}
- realice una nueva confirmación que cancele su fusión, como se describe en el libro de ProGit , con
git revert
revert :
git revert -m 1 HEAD~
(en tu 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(-)
Puede encontrar una discusión completa sobre cómo revertir una combinación aquí .
Queda la idea de generar solo confirmaciones nuevas , incluida una que revierta los cambios introducidos por la confirmación de fusión.
Luego puede empujar ese nuevo compromiso, como un cambio de avance rápido.