Eliminar la última confirmación del repositorio Git remoto

Resuelto user1059540 asked hace 12 años • 2 respuestas

¿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 logme da el siguiente historial de confirmaciones

A->B->C->D[HEAD, ORIGIN]

¿Cómo puedo ir a

A->B->C[HEAD,ORIGIN]
user1059540 avatar Nov 22 '11 17:11 user1059540
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~
knittl avatar Nov 22 '2011 10:11 knittl

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.

Michael Krelin - hacker avatar Nov 22 '2011 10:11 Michael Krelin - hacker