Eliminar la última confirmación del repositorio Git remoto
¿Cómo puedo eliminar la última confirmación de un repositorio Git remoto si ya no la veo en el registro?
Si por ejemplo git log
me da el siguiente historial de confirmaciones
A->B->C->D[HEAD, ORIGIN]
¿Cómo puedo ir a
A->B->C[HEAD,ORIGIN]
Aceptado
Tenga en cuenta que esto creará una "realidad alternativa" para las personas que ya han obtenido/extraído/clonado del repositorio remoto. Pero en realidad es bastante sencillo:
git reset HEAD^ # remove commit locally
git push origin +HEAD # force-push the new HEAD commit
Si todavía deseas tenerlo en tu repositorio local y solo eliminarlo del remoto, entonces puedes usar:
git push origin +HEAD^:"$name_of_your_branch" # e.g. +HEAD^:master
Algunas conchas interpretan al ^
personaje. Para esos shells, cita/escape o usa ~
:
HEAD\^
'HEAD^'
HEAD~
Si nadie lo ha hecho, probablemente puedas hacer algo como
git push remote +branch^1:remotebranch
lo que forzará la actualización de la rama remota a la penúltima confirmación de su rama.