Pregunta No se pueden presionar los cambios después de usar git reset --hard


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 obteniendo 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?


30
2018-03-21 11:59


origen


Respuestas:


git push -f origin myBranch 

debería funcionar (siempre que sepa que esto puede ser peligroso si MyBranch ya fue extraído por otros en su propio repositorio)

Nota: si su repositorio remoto ('origen') tiene su config colocado con

receive.denyNonFastForwards true

negará cualquier impulso de avance rápido (incluso forzado).
Ver "¿Hay alguna forma de configurar el repositorio de git para rechazar 'git push --force'?".


los Usuario de OP654019 informes

Logré resolver el problema esta vez estableciendo denyNonFastForwards a false y usando -f forzar el empuje

Si el OP no tenía acceso al repositorio, él / ella tendría que:

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(-)

revert a merge

Una discusión completa sobre cómo revertir una fusión puede ser encontrado aquí.

La idea sigue siendo generar solo nuevo commits, incluido uno que revierte los cambios introducidos por el commit de fusión.
Luego puede empujar ese nuevo compromiso, como un cambio de avance rápido.


60
2018-03-21 12:13



Debe especificar qué ref que desea presionar:

git push -f origin MyBranch

4
2018-03-21 12:12