gitでリモートのリポジトリにpushしたcommitを取り消したいときにはrebaseを使います。

git rebase -i HEAD~2

とすると、エディタが開いて過去2回分のコミット時のコメントが表示されます。
コメントの2行目を削除して保存すると、前回のコミットが取り消されます。

その後、
git push origin +master
すればOK。

rebaseはリモート・ローカル共にHEADの位置が変更されます。
リモートのみ、またはローカルのみの場合は

<リモートのみ>
git push -f origin HEAD^:master

<ローカルのみ>
git reset HEAD^

ローカルのみコミットを取り消した場合、リモートのほうが世代が進んでいることになるので、reset後にpushしようとするとエラーになります。
その場合は一度rebaseして世代を合わせる必要があるっぽいです。

参考URL → http://sourceforge.jp/magazine/09/03/16/0831212/3