último ultimo remoto especifico eliminar deshacer delete git github commit

ultimo - git reset



¿Cómo eliminar el último n commit en Github y localmente? (3)

Estoy tratando de eliminar los últimos 2 commits en uno de mis repositorios de GitHub. He intentado como se sugiere here : git push -f origen HEAD ^^: master. Parece que funciona, las dos últimas confirmaciones se eliminan.

Luego los borré de mi repositorio local con git rebase -i HEAD ~ 2. Elimino las líneas que están relacionadas con esas confirmaciones y verifico con git log que se eliminaron correctamente.

Después de eso, realizo algunos cambios en mi repositorio local, realizo una nueva confirmación y paso a GitHub. El problema es que en mi cuenta de GitHub tengo los dos compromisos anteriores que he intentado eliminar.

Creo que el problema está en mi repositorio local porque si clono mi repositorio de Github en mi local, y hago algunos cambios aquí cuando presiono una nueva confirmación, esos compromisos anteriores no se envían a GitHub.

¿Alguna idea?


Lo siguiente funciona para mí

git reset HEAD~n

Elimina las últimas n confirmaciones del repositorio local, ya que HEAD^ elimina solo una. Si necesita eliminar estos cambios desde el control remoto, es posible que deba forzar la inserción, ya que estará detrás del control remoto.

git push -f origin <branch>


Para eliminar las últimas dos confirmaciones localmente, te sugiero que utilices:

git reset --hard HEAD^^

Rebase es una operación completamente diferente que no te ayudará aquí.


Si desea eliminar los 2 (dos) últimos commits, hay un comando fácil para hacer eso:

git reset --hard HEAD~2

Puede cambiar el 2 para cualquier cantidad de últimos commits que quiera eliminar.

Y para llevar este cambio a control remoto, necesita hacer un git push con el parámetro force ( -f ):

git push -f

Sin embargo, no recomiendo hacer ningún comando de git con las opciones -f o --hard involucradas si hay nuevas confirmaciones en el control remoto (Github) después de que este confirme que desea eliminar. En ese caso, siempre use git revert .