エンジニアのひよこ_level10

【毎日更新!】新卒2年目エンジニアブログです! プログラムだけじゃなく、マネジメントとかも書いていきたい!

【git】一度revertしたブランチを修正して再mergeすると、変更が保存されない【187日目】

こんな場面

  1. xxx_branchで作業したぜ! masterにmergeするで!

  2. あ、 xxx_branchまだ修正点あるわ。 masterにmergeしたのをrevertして元通りに戻すっと。

  3. さあ、 xxx_branchをもう一度mergeするで!

  4. あれ・・・? xxx_branchの変更が masterに反映されてない・・・

何が起こるのか

commit-1 commit-2 commit-3が最初のmergeであったとして、

2で commit-1 commit-2 commit-3を打ち消します。

3で commit-4を追加して、マージすると、

4には commit-4しか残らない・・・

なぜか

2の時点で、masterにはcommit-1 commit-2 commit-3 revert-1-2-3が入っています。

3の時点で、commit-1 commit-2 commit-3 revert-1-2-3 commit-4なので、そりゃ1-2-3はないですよね・・・

どうしたらいいか

  1. revertをrevertする

  2. commit-1 commit-2 commit-3と同じ変更を再度行ったブランチをmergeする

revertって難しいね

revertするとこんな問題が発生しますね・・・ 2の時点で、前のcommitに戻してフォースプッシュするという手もありますが、記録がなくなるし出来れば避けたいところ。

何が最善かはわからないので、おすすめの対処方とかありましたら、是非教えてください。

まあ、2のようなことが起こらないのが一番ですね!注意しましょう!←ちなみにやらかしたのは私