push 戻したい

今のプロジェクトはデバッグを自動化していて、Git でリポジトリにコードを push するたびに Jenkins 上で自動的にデバッグが走り、正常終了しない場合はメールが push した人と管理者 (SE とか) に飛んでくる。

少し前にはやった TDD とか言うやつ。

当然自動化といっても、デバッグするためのソースコードなどをちまちま書かなくちゃいけない。

もちろんそのソースコードも push する必要がある。

そこで事件は起こった。

 

その人は何を思ったのか、ちょっとだけ作って push してしまったのだ。

そしてまもなく送られてくるエラーメール。

さらに当然その後誰が何を push してもエラーがで続け、エラーメールの嵐に。

 当時自分は少し大規模なシステムの構築を練っていて、push どころか集中しすぎてメールを見ていなかった。

なので、大量発生しているエラーに気づかなかった。

発生から何時間かして、当人が青い顔をして相談してきた。

どうやら最初にエラーを発生させた人のところには、他の人の push 分のメールが毎度来るらしい。

いろいろ言いたいことはあったけど、とりあえずエラーを何とかしなければならない。

デバッグ用のソースコードの完成は未定とのことだったので、じゃあ push 戻すしかないなと。

 

コンソールからだと revert すれば良いんだけど、Egit にはそれらしきメニューがない。

あるのは「コミットを戻す」だけ。

ふむ。

とりあえずやってみる。

何かエラーが出る。

HEAD にしろというので pull する。

もう一度コミットを戻してみる。

ヒストリを見ると、 push したファイル群に×マークがついていて、何かそれっぽいことになっている。

じゃぁその状態を push しましょう。

できた!

  1. ローカルを最新の状態にする
  2. コミットを戻す
  3. push する

手順は以上の3つ。

 

しかし!

しかし問題が発生した。

push したファイルがローカルからぜんぶ消えたとのこと。

さすがにドンマイ!では済ますのはかわいそうだった。

でもご安心を。

ヒストリから過去の push したファイルが見れるので、それコピペすれば解決した。

 

push は慎重にね。