Подтвердить что ты не робот

Можно ли отменить последний git push?

Один из членов команды случайно ударил половину концерта нежелательных молний в отдаленный репо прошлой ночью, когда они были в спешке. Да... oops.

Никто не потянул или совершил с тех пор.

В идеале я хочу просто "отменить" то, что произошло.

Я посмотрел на фильтр-ветку и думал о том, чтобы попробовать что-то вроде

git filter-branch --tree-filter 'rm -f *.zip' HEAD

но это будет локально, и я не могу понять, как это сделать прямо на удаленном репо.

Есть ли более простой способ отменить то, что произошло? Если она изменяет свое последнее совершение и снова нажала, это отменит нажатие - т.е. фактически удалите эти файлы из истории?

Очевидно, если она удалит их, она снова и снова перетаскивает, а затем оставляет содержимое в репо, что не хорошо.

4b9b3361

Ответ 1

Спасибо, Дон, я видел это, но почему-то не понял, что он исправил мою проблему, потому что у меня только одна ветка.

Я сделал:

git push -f origin 5910117a8fc2c71334251465b54d6d9daeb28d1c:master

И все вернулось к тому, как это было.

Ответ 2

Я думаю,

git reset --hard HEAD^
git push -f

должен выполнить трюк: он сбрасывает ваш локальный чек на предыдущую фиксацию (при условии, что последний из них - тот, который вы хотите удалить) и принудительно перенаправляет его в удаленный репозиторий.