Supondo que sua ramificação seja chamada masteraqui e remotamente, e que seu controle remoto seja chamado, originvocê pode:
git reset --hard <commit-hash>
git push -f origin master
No entanto, você deve evitar fazer isso se mais alguém estiver trabalhando com seu repositório remoto e tiver feito suas alterações. Nesse caso, seria melhor reverter as confirmações que você não deseja e depois pressionar normalmente.
Atualização: você explicou abaixo que outras pessoas realizaram as alterações que você enviou, por isso é melhor criar um novo commit que reverta todas essas alterações . Há uma boa explicação de suas opções para fazer isso nesta resposta de Jakub Narębski . Qual é o mais conveniente depende de quantos commits você deseja reverter e qual método faz mais sentido para você.
Como a partir de sua pergunta, é claro que você já usou git reset --hardpara redefinir sua masterramificação, pode ser necessário começar usando-a git reset --hard ORIG_HEADpara mover sua ramificação de volta para onde estava antes. (Como sempre git reset --hard, verifique se git statusestá limpo, se você está no ramo certo e se conhece git reflogcomo uma ferramenta para recuperar confirmações aparentemente perdidas.) Você também deve verificar se ORIG_HEADaponta para a confirmação correta git show ORIG_HEAD.
Solução de problemas:
Se você receber uma mensagem como " ! [Rejeitado remotamente] a60f7d85 -> master (gancho de pré-recebimento recusado) "
é necessário permitir a reescrita do histórico da ramificação para a ramificação específica. No BitBucket, por exemplo, dizia "Não é permitido reescrever o histórico de ramificações". Há uma caixa de seleção com o nome Allow rewriting branch historyque você deve verificar.
origin/masterque não foi puxado e pressionado por outros usuários? Alterar o histórico de um repositório público (ou seja, não local) é algo que você deseja evitar o tempo todo.