📝

リベースで変更履歴を修正しよう

に公開

rebaseとは

一言で言えばブランチの基点となるコミット(親コミット)を、別のコミットに移動すること。

イメージ


簡単にいうと履歴が枝分かれしているのが、一直線になります。

コードは以下の通りです。

$ git rebase <ブランチ名>

メリット

履歴を一直線にすることができる。

rebaseでしてはいけないこと

githubにpushしたコミットをrebaseするのはNG。

これをするとgit pushできなくなります。

mergeとrebaseの違い

似ているコマンドにmergeがあったと思います。
このmergeとrebaseのメリットデメリットを比較します。

merge
○コンフリクトの解決が簡単
×マージコミットがたくさんあると履歴が複雑

rebase
○履歴をきれいに保つことができる
×コンフリクトの解決が厳しい。

どっちを使うべき?

pushしていないローカルの変更はrebaseを使い、
pushした後はmergeを使おう。

コンフリクトが怖いならmerge一択。

Discussion