Wonderful Life

サボりがちだけど備忘録です。思ったままに書いてます。

git pushしちゃったのを取り消したい

これだけに時間かけすぎたのでメモ。
gitもっと勉強せな・・・。

はじめに

bitbucketを使ってiOSアプリを開発してました。
masterとdevelopの2つのブランチであちこち修正しながら開発中。

色々リファクタリングとか抽象化とかやってたんだけど、
動作もっさりなのにmasterブランチにcommitしてpushしちゃった残念なパターン。
developでまた色々実験しててパフォーマンスよくなったので、
masterでコミットしちゃったモノを取り消して、
developの変更を反映させたい・・・。

↓↓恥ずかしいコミット
f:id:niyaty:20120910231608j:plain

困ったこと

masterにpushできない。
一旦masterを削除して再度pushしな!って情報を見た気がするけどダメだった。

% git reset --hard { ハッシュ値 }

% git push origin :master
remote: bb/acl: niyaty is allowed. accepted payload.
remote: error: refusing to delete the current branch: refs/heads/master
To git@bitbucket.org:niyaty/myproject.git
 ! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to 'git@bitbucket.org:niyaty/myproject.git'


以下の記事を参考に実行(そのまま実行しましたすいません)
http://d.hatena.ne.jp/shunsuk/20101202/1291278345

  • fオプションつけてガチムチpushな感じでイケてない気がするけど、

1人でいじってるリポジトリだから、まぁいいんじゃないかと・・・。
複数でいじってたらこれはNGですね。
色んな人から怒られそう。。。

反省点

git勉強しなさいの一言なんだけど・・・。
自分1人だからってcommitが適当すぎるかな。
masterあまり触らないようにしたほうが良いかも。
勉強がてらgit-flowとか使ってみても良いのかなー。

よーく考えてmasterにcommitしよう、という教訓になりました。