バグですか?仕様ですか?筋肉です💪

筋肉とプログラミング、その他アウトプットをしていきます。

gitで派生元branchを間違えた時の対処法

作業ブランチの派生元を修正する

  1. git rebase --onto {本来親にしたかったブランチ} {間違って親にしてしまったブランチ名} {親を変更する作業ブランチ名}

  2. conflictを解消する。

  3. ブランチの派生元を調べる。
    ブランチがどこまでマージされているかを調べる
    git show-branch branchA branchB
    ブランチの派生元を調べる
    git show-branch branchA branchB | tail -1

  4. 一度pushしている場合は、コミット履歴の改変になってしまうので、注意が必要。
    他の人も同じ作業をしている場合はNG。自分だけなら-fオプションをつけて強制的にpushする。
    git push -f origin {親を変更する作業ブランチ名}

新しいブランチを作り直す。

新しい作業ブランチを正しく作っておき、git cherry-pickを使って欲しいコミットだけを適用する。

  1. 正しくブランチを作り直す
    git checkout -b {新しく作るブランチ} {本来親にしたかったブランチ}

  2. 欲しい作業だけを適用する
    git cherry-pick {コミットID}

  3. ブランチの派生元を調べる。
    ブランチがどこまでマージされているかを調べる。
    git show-branch branchA branchB
    ブランチの派生元を調べる
    git show-branch branchA branchB | tail -1