先日git revertでやらかしてしまったのでご紹介しておきます。
自分がアホだっただけかもしれませんが、
同じ失敗をする方がいませんように共有させていただきます・・・
何をやらかしたのか
結論から言うと、
知らない間に他の人のコミットを消してリリースしてしまった(ヒャー!!
なぜそんなことに
devブランチにmaserをmergeしてきたのをrevertしました
意図は正直覚えていないのですが(汗
mergeを一旦なかったことにしたかったのだと思います。
図にするとこんな感じ
* fffffff Merge develpoment into master (master)
|\
| * eeeeeee Revert 'ddddddd' (HEAD -> development)
| * ddddddd Merge master into develpoment
|/|
* | ccccccc 他の人の開発
| * bbbbbbb developmentブランチを切ってcommit
|/
* aaaaaaa first commit (master)
その結果
masterにmergeしたら(当然ですが)取り消したcommitが取り込まれ、
master上でも他のコミットを打ち消してしまったが、
それに気づかずreleaseブランチまでmergeしてしまいました。
どうすればよかったのか
今回はただmergeする前に戻りたかっただけなので(多分)
"reset"で良かったなーと思います。
また、revertは「開発ブランチでは原則行わないように」という運用になりました。
まとめ
revertはcommitする前に戻してくれるコマンドではない!!
commitを打ち消すcommitで上書きしてるだけなんだ!!
ということを肝に銘じておきます。