- Clique com o botão direito do mouse no commit que você deseja redefinir (não no que você deseja excluir!)
- Selecione "Redefinir mestre para este commit"
- Selecione "Soft" redefinir.
Uma reinicialização suave manterá as alterações locais.
Fonte: https://answers.atlassian.com/questions/153791/how-should-i-remove-push-commit-from-sourcetree
Editar
Sobre git revert: Este comando cria um novo commit que irá desfazer outros commit. Por exemplo, se você tem um commit que adiciona um novo arquivo, git revertpoderia ser usado para fazer um commit que excluirá o novo arquivo.
Sobre a aplicação de uma reinicialização suave: Suponha que você tenha confirmações Aem E( A---B---C---D---E) e gostaria de excluir a última confirmação ( E). Em seguida, você pode fazer uma redefinição suave para confirmar D. Com uma reinicialização suave, a confirmação Eserá excluída do git, mas as alterações locais serão mantidas. Existem mais exemplos na documentação do git reset .