⚙️
git rebase のやり方
前提
sourcetree を使っています。
登場ブランチ
・根元にしたいブランチ(今回はリモートの hogeDevelop ブランチと想定)
・作業中のブランチ(今回はローカルの feature/hogehoge ブランチと想定)
※ hogeDevelop と feature/hogehoge は適宜置き換えてください。
手順
- 作業ブランチに checkout する (
git checkout feature/hogehoge
) -
git rebase origin/hogeDevelop
コマンドの実行し rebase を行う。このときにコンフリクトがなければそのままリベースされて終了なので以降の手順はしなくても大丈夫です。コンフリクトしている場合はその旨がコンソールに表示されるので、以降の手順を実施する。 - sourcetree 上でコンフリクトしているファイルが三角の注意マークで表示されるので、ファイルを選択して右クリックから「Finderを表示」から、VSCode など適当なエディターで開いてコンフリクトを解消する。この際、どのように修正して良いかわからなけれなば関係者と相談する。
- 修正が終了したら
git add --all
コマンドを実行する。 - エラーがなければ
git rebase --continue
コマンドを実行する。成功すると、rebase コマンドでエラーで詰まっていたコミットが反映される。 - rebase 後の作業ブランチを普通に push するとエラーになるので
git push --force-with-lease origin HEAD
コマンドで強制的に push する。
備考1:sourcetree での操作はコンフリクトとしているファイルを探す作業のため、他の方法でも構いません。
備考2:コンフリクトの解消作業で git rebase --abort
コマンドを実行すると rebase コマンドを実行する前に戻すことができます。
Discussion