今日の教訓

とりあえず、共用リポジトリに push するのはそれなりの根拠を持って、という事で。
でも、今回みたく

          master
          v
      o---o---o 
     /   /
o---o---o

って形になってて、上記のいっちゃん右端の commit に戻す事になりつつ、HEAD^ の (一部の) 更新は盛り込みたい、というケイスはありがちなんでしょうが、push はしてないだろ、と。
作業リポジトリに存在する状態であればブランチ作って巻き戻し、はできそげなので、push してたのが悪なのか。

基本的な作業方法として

git clone でリポジトリをローカルに持ってきたら、基本的には branch 作って作業するのがデフォルトなんだろうな。
で、本当に push するナニを作業リポジトリの master に merge して push する、と。

リカバリ

とりあえず今回については git push --force で無理矢理巻き戻す方向です。
ただ、こうした作業リポジトリってどうやってバックアップを担保すりゃ良いのでしょうね。リモートのどこかにリポジトリを作っておいて

$ mkdir /pub/repository/xxx.git
$ cd /pub/repository/xxx.git
$ git --bare init --shared

持ってる作業リポジトリを push すれば良い?

$ git push fuga@hoge:/pub/repository/xxx.git master

ここは別途試してみようと思ってます。これができるんだったら急いで push する理由は無いッス。