xyk blog

最近は iOS 開発の記事が多めです。

Git でブランチの派生元を間違えたときに git rebase --onto で修正する

やるたびに調べているのでメモ。

$ git rebase --onto (新しい派生元ブランチ名) (現在の派生元ブランチ名) (ブランチ名)

派生元がブランチでない場合はコミットID指定でもOK。

例: 間違えて develop から作成した feature/hoge ブランチの派生元を master に変更する

$ git rebase --onto master develop feature/hoge

おまけで --onto で指定先をミスってコミットが見えなくなってしまった場合は、reflog で消えたコミット群を探し、その末端のコミットに対して再度ブランチ化すればよい。

$ git reflog
$ git checkout (コミットID)  # 消えているコミットの末端へ移動する
$ git branch (ブランチ名)  # ブランチ化する

参考:

git でコミットが消えた場合に簡単に復帰する方法 - Qiita