エンジニアのひよこ_level10

【毎日更新!】新卒4年目エンジニアブログです!

【Git】revertの罠。間違えてdevelopにマージしちゃったとき【914日目】

間違えた!revertしよう!

Gitを使っていて、

『プルリクの向き先間違えてdevelopにしちゃった!』
『間違えてdevelop書き換えちゃった!』

ってときに、revertしました。

もとに戻ったように見えますが、何も考えてないと、後から思わぬ問題が起こったりします。

起こる罠。問題。

ブランチXで、AとBのコミットを作りました。
まだ途中なのに、developにブランチXを入れました。

危ない!って思って、
developでAとBのコミットをrevertしました。

Cのコミットが出来て、ブランチXが完成したのでdevelopにマージしたら……
あれ!?developにAとBがない!?

revertって?

バックリ言うと、該当の『commitの逆のcommitを作る』ことで打ち消すものです。

忘れちゃいけないのは、gitでのコミットは「コミット間での差分しか持たない」ので、 反対の差分を作ります。

消したなら作る、作ったなら消すというものがrevertです。

コミットAで「A」というファイルを作って、
コミットBで「B」というファイルを作って、
AとBをリバートすると、
「A」と「B」を消すというリバートコミットが出ます。

どうして問題が発生した?

f:id:willow710kut:20200414185544p:plain

f:id:willow710kut:20200414185604p:plain

f:id:willow710kut:20200414185617p:plain

f:id:willow710kut:20200414185628p:plain

ブランチXで作業してた人は、AとBがあるので、なんでdevelop行ったらファイルが消えているかわからない……
それは、ブランチXの人はrevertのcommitがないから気が付かないやつですね。

どうすればよかった?

アンケートでも、票が割れているようです。

なので、正しい正解はわかりませんが、revertしたらrevertをrevertするのを忘れないようにしましょうφ(・
あとは、プルリク建てるときに、ブランチXにdevelopを入れてからなら気づいたかもしれません。

ご注意を!