前の開発ブランチのコミットも一緒にコミットされていたとき

ブランチを切った時にmasterからではなく、他の開発ブランチ(今までいた開発ブランチ)からブランチを切ってしまったときにpushすると、コミットが前のブランチのコミットも一緒にコミットされてしまいます。どうやって解決したか書きたいと思います。

状況

  • Fooブランチ開発してPR作成
    • AとBというコミットがPushされている
  • BarブランチをFooブランチから切って開発してPR作成
    • CとDというコミットだけをPushしたが コミットは4つある(ABCDの順で)

解決方法

  • Fooブランチがmain(master)にマージされたら、ローカルのmainをgit pullする
  • Barブランチをにて、git rebase mainを実行する
  • その後、Barブランチでgit push origin +Barで強制プッシュする
  • BarブランチのPRを見るとコミットがCとDだけになっている

あっさりと解決しました。rebase -irevertresetを使うか迷いましたがよかったです!