usar tag repositorios repositorio remoto que how hacer from eliminar create como clonar cambiar git

git - tag - ¿Cómo forzar un restablecimiento al repositorio remoto?



how to tag in git (7)

Nuestra rama maestra remota de alguna manera se ensució. El código de desarrollo actual está en la rama principal junto con los últimos commits. Obviamente, el código de desarrollo no está listo para la rama principal.

Entonces, en mi repositorio local, git reset --hard (Tag) la última etiqueta, git reset --hard (Tag) . La rama maestra ahora está correcta en mi repositorio local. Ahora cuando intento enviar los cambios al repositorio remoto, git push origin master , obtengo un error:

To (REMOTE GIT REPOSITORY LOCATION) ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to ''(REMOTE GIT REPOSITORY LOCATION)'' To prevent you from losing history, non-fast-forward updates were rejected Merge the remote changes (e.g. ''git pull'') before pushing again. See the ''Note about fast-forwards'' section of ''git push --help'' for details.

Entonces, después de mirar alrededor descubrí la opción --force . Así que hice un empujón de fuerza en el repositorio remoto, git push --force origin master , y todavía recibí un error:

Total 0 (delta 0), reused 0 (delta 0) remote: error: denying non-fast-forward refs/heads/master (you should pull first) To (REMOTE GIT REPOSITORY LOCATION) ! [remote rejected] master -> master (non-fast-forward) error: failed to push some refs to ''(REMOTE GIT REPOSITORY LOCATION)''

No puedo extraer un master, porque contiene un código de desarrollo que no puede estar en master.


El control remoto no permite avances rápidos.

Tu mejor opción es git revert todos los commits que no deberían estar allí y tener más cuidado en el futuro.

git revert [commit] creará un nuevo commit que deshace lo que [commit] hizo.


El mensaje significa que no está permitido hacer un avance no rápido.

Es muy probable que tu repositorio remoto denyNonFastforwards = true en su configuración. Si cambias eso, git push --force debería funcionar.

Para cambiar la configuración, necesita acceder a la máquina con el repositorio remoto. A partir de ahí, haz que git config receive.denynonfastforwards false .


El problema ocurre porque la rama actual no está configurada correctamente para el PULL . Primero compruebe si la rama ascendente está configurada correctamente para el origen de extracción de git remote show origin extracción de git remote show origin . Puede encontrarlo en la sección - Ramas locales configuradas para ''git pull'':. Si no, configúrelo usando:

git config branch.MYBRANCH.merge refs/heads/MYBRANCH

Proporcione el nombre de la sucursal correspondiente para el titular del lugar: MYBRANCH


Estoy usando este grupo de comandos para restablecer mi repositorio remoto, esto reinicializará su repositorio local y volverá a vincularlo con su repositorio remoto y luego forzará las actualizaciones.

Creo que de esta manera no funcionará en su caso, pero puede ser útil para otra persona

vaya a la carpeta de origen y luego ejecute los comandos: tenga en cuenta que https://github.com/*.git es su enlace de repositorio remoto

git init git remote add origin https://github.com/*.git git add . git commit -m "initial commit" git push origin master -f git push --set-upstream origin master

**Note: this will clear all your git history on your master branch**


Intente usar el indicador -f y colóquelo después del nombre de la sucursal remota.

git push origin master -f


No puedes hacer git push que no sea rápido.

  1. Si el control remoto es GitHub, vaya a https://github.com/$USER/$REPO/settings/branches y desproteja la rama en cuestión.

    Tienes que ser el administrador del repositorio para hacer eso.

  2. Si el control remoto es su propio servidor git, ejecute git config receive.denynonfastforwards false allí.


Pasos para habilitar permanentemente el empuje de fuerza en el siguiente estilo

git push -f myrepo my-branch

Edite el archivo llamado "config" en la carpeta que termina en ".git" en su repositorio remoto

En la salida de la línea de comandos de git del impulso fallido, busca la línea que diga algo así como:

error: failed to push some refs to ''ssh://[email protected]/srv/git/myrepo.git

entonces

ssh [email protected] cd /srv/git/myrepo.git vi config

Establezca "denyNonFastforwards" en falso

En "config", establece

[receive] denyNonFastforwards = false

Ahora puede presionar desde su máquina local con -f

git push -f myrepo my-branch