trucos tag que name hace conectar con commits commands comentarios codigos git git-push

que - git tag name



Deshacer un ''empujón git'' (10)

Esto es lo que hice en mi rama de supuesta estabilidad .

% git rebase master First, rewinding head to replay your work on top of it... Fast-forwarded alpha-0.3.0 to master. % git status # On branch alpha-0.3.0 # Your branch is ahead of ''origin/alpha-0.3.0'' by 53 commits. # nothing to commit (working directory clean) % git push Fetching remote heads... refs/ refs/heads/ refs/tags/ refs/remotes/ ''refs/heads/master'': up-to-date updating ''refs/heads/alpha-0.3.0'' from cc4b63bebb6e6dd04407f8788938244b78c50285 to 83c9191dea88d146400853af5eb7555f252001b0 done ''refs/heads/unstable'': up-to-date Updating remote server info

Eso fue todo un error como me di cuenta más tarde. Me gustaría deshacer todo este proceso y revertir la rama alpha-0.3.0 a lo que era.

¿Qué tengo que hacer?


Creo que también puedes hacer esto:

git checkout alpha-0.3.0 git reset --hard cc4b63bebb6 git push origin +alpha-0.3.0

Esto es muy similar al último método, excepto que no tienes que jugar en el repositorio remoto.


Debe asegurarse de que ningún otro usuario de este repositorio esté obteniendo los cambios incorrectos o intentando construir sobre los compromisos que desea eliminar porque está a punto de rebobinar el historial.

Entonces necesitas ''forzar'' empujar la referencia antigua.

git push -f origin last_known_good_commit:branch_name

o en tu caso

git push -f origin cc4b63bebb6:alpha-0.3.0

Es posible que haya configurado receive.denyNonFastForwards en el repositorio remoto. Si este es el caso, obtendrá un error que incluye la frase [remote rejected] .

En este escenario, tendrá que eliminar y volver a crear la rama.

git push origin :alpha-0.3.0 git push origin cc4b63bebb6:refs/heads/alpha-0.3.0

Si esto no funciona, tal vez porque tiene configurado el conjunto receive.denyDeletes , debe tener acceso directo al repositorio. En el repositorio remoto, debe hacer algo como el siguiente comando de plomería.

git update-ref refs/heads/alpha-0.3.0 cc4b63bebb6 83c9191dea8


Deshacer múltiples confirmaciones git reset - hard 0ad5a7a6 (Solo proporcione el hash de confirmación SHA1)

Deshacer última confirmación

git reset - hard HEAD ~ 1 (se eliminarán los cambios al último commit) git reset --soft HEAD ~ 1 (los cambios al último commit estarán disponibles como modificaciones locales no confirmadas)


Esto eliminará la última confirmación empujada en la rama remota (maestra o su rama):

git push origin +HEAD^:master



Otra forma de hacer esto:

  1. crear otra rama
  2. Verifique la confirmación anterior en esa rama usando "git checkout"
  3. empujar la nueva rama.
  4. elimine la rama antigua y presione la eliminación (use git push origin --delete <branch_name> )
  5. cambiar el nombre de la nueva rama en la antigua rama
  6. empujar de nuevo.

Una forma de hacerlo sin perder los cambios que querías:

git reset cc4b63b git stash git push -f origin alpha-0.3.0 git stash pop

A continuación, puede elegir los archivos que quería enviar


git revert es menos peligroso que algunos de los enfoques sugeridos aquí:

prompt> git revert 35f6af6f77f116ef922e3d75bc80a4a466f92650 [master 71738a9] Revert "Issue #482 - Fixed bug." 4 files changed, 30 insertions(+), 42 deletions(-) prompt> git status # On branch master # Your branch is ahead of ''origin/master'' by 1 commit. # nothing to commit (working directory clean) prompt>

Reemplace 35f6af6f77f116ef922e3d75bc80a4a466f92650 con su propio compromiso.


Escenario 1 : Si desea deshacer el último comentario, digamos 8123b7e04b3, a continuación está el comando (esto funcionó para mí):

git push origin +8123b7e04b3^:<branch_name>

La salida se ve a continuación:

Total 0 (delta 0), reused 0 (delta 0) To https://testlocation/code.git + 8123b7e...92bc500 8123b7e04b3^ -> master (forced update)

Información adicional: Escenario 2 : En alguna situación, puede revertir lo que acaba de deshacer (básicamente deshacer el deshacer) mediante el comando anterior, luego use el siguiente comando:

git reset --hard 8123b7e04b3

Salida:

HEAD is now at cc6206c Comment_that_was_entered_for_commit

Más información aquí: https://github.com/blog/2019-how-to-undo-almost-anything-with-git


git push origin +7f6d03:master

Esto revertirá su repo al número de confirmación mencionado