⚙️

git rebase のやり方

2021/12/25に公開

前提

sourcetree を使っています。

登場ブランチ

・根元にしたいブランチ(今回はリモートの hogeDevelop ブランチと想定)
・作業中のブランチ(今回はローカルの feature/hogehoge ブランチと想定)

※ hogeDevelop と feature/hogehoge は適宜置き換えてください。

手順

  1. 作業ブランチに checkout する (git checkout feature/hogehoge
  2. git rebase origin/hogeDevelop コマンドの実行し rebase を行う。このときにコンフリクトがなければそのままリベースされて終了なので以降の手順はしなくても大丈夫です。コンフリクトしている場合はその旨がコンソールに表示されるので、以降の手順を実施する。
  3. sourcetree 上でコンフリクトしているファイルが三角の注意マークで表示されるので、ファイルを選択して右クリックから「Finderを表示」から、VSCode など適当なエディターで開いてコンフリクトを解消する。この際、どのように修正して良いかわからなけれなば関係者と相談する。
  4. 修正が終了したら git add --all コマンドを実行する。
  5. エラーがなければ git rebase --continue コマンドを実行する。成功すると、rebase コマンドでエラーで詰まっていたコミットが反映される。
  6. rebase 後の作業ブランチを普通に push するとエラーになるので git push --force-with-lease origin HEAD コマンドで強制的に push する。

備考1:sourcetree での操作はコンフリクトとしているファイルを探す作業のため、他の方法でも構いません。
備考2:コンフリクトの解消作業で git rebase --abort コマンドを実行すると rebase コマンドを実行する前に戻すことができます。

GitHubで編集を提案

Discussion