If this is your personal project, i.e. no one else has pulled from master
in the meantime, I would suggest either resetting or rebasing instead of reverting (which, as a consequence, creates new commits).
If you don't care about the stuff introduced by those 20 commits and you just want to get rid of those (that is how I understood your question), then I'd go with
git reset --hard HEAD~21
and then git push -f origin master
.
If you do care about 19 out of 20 of those commits and you are sure that the changes they introduce are completely unrelated to that one "which breaks everything", I would go for
git rebase --interactive HEAD~21
which will list all the 20 commits.
Change pick
to drop
in front of the "guilty" commit and save. This will delete that commit from the history.
Take care of merge conflicts (if any) and continue with the rebase.
Once everything is done, you will need to force push as this also changes the branch history.