volver remoto recuperar locales ignorar hard eliminar deshacer cambios borrado anterior git git-revert

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 configurando denyNonFastForwards en false y usando -f para 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(-)

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.