Удалить последнюю фиксацию из удаленного хранилища git

Возможный дубликат:
Откат локального и удаленного репозитория git с помощью 1 фиксации

Как удалить последнюю фиксацию из удаленного репозитория git, например, я больше не вижу его в журнале?

Если, например, git log дает мне следующую историю фиксации

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

как я могу перейти на

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

Спасибо.

Ответ 1

Будьте осторожны, чтобы это создало "альтернативную реальность" для людей, которые уже извлекли/вытащили/клонировали из удаленного репозитория. Но на самом деле это довольно просто:

git reset HEAD^ # remove commit locally
git push origin +HEAD # force-push the new HEAD commit

Если вы хотите сохранить его в своем локальном репозитории и удалить его только с удаленного устройства, вы можете использовать:

git push origin +HEAD^:<name of your branch, most likely 'master'>

Ответ 2

Если никто не потянул его, вы, вероятно, можете сделать что-то вроде

git push remote +branch^1:remotebranch

который будет принудительно обновлять удаленную ветвь до последнего, но одного фиксации вашей ветки.