🌲

git: 派生元のブランチを間違ったとき

に公開

毎回調べるやつ

PR 作成済みのブランチの、派生元を変えたい場合

usecase

develop から派生して作業、push して PR まで作ったが、main から派生すべきだった

現状 & やりたいこと

  • 現在は develop 派生で feature/muhoho ブランチを作成し、PR を作成済み
  • main 派生で作成された feature/muhoho ブランチに変更し、同じ PR へ反映したい

用語

各ブランチを下記のように言い換えています

  • 派生元ブランチ: main
  • 作業ブランチ: feature/muhoho
  • 修正ブランチ: feature/muhoho-fix

方法

# コミットハッシュを取得
git log develop..feature/muhoho

<commit hash>

# 派生元ブランチから修正用ブランチを作成
git checkout main
git checkout -b feature/muhoho-fix

# 修正用ブランチに変更内容を反映
git cherry-pick <commit hash>

# 作業ブランチを修正用ブランチの位置へ強制移動
git branch -f feature/muhoho HEAD

# 作業ブランチを強制 push
git checkout feature/muhoho
git push --force-with-lease

やってること

本来作成すべき派生元ブランチから一時的にブランチを作成して、そこに変更を適用する
派生元が間違っているブランチを、一時ブランチと同じ状態にして強制プッシュ

Discussion