TUTORIAL
Git チュートリアル - リベース
このチュートリアルでは、git rebase 機能を紹介します。
このページの内容
次のような基本的なマージについて説明しました
-
早送りマージ
fast-foward merge -
3 方向(再帰)マージ
このチュートリアルでは、Git の最も重要な機能の 1つであるリベースを紹介します。
git rebase とは何ですか
リベース rebase とは、ブランチのルートコミットを変更することを意味します。つまり、master ブランチのように、ベースコミットをマージするブランチの最近のコミットにリセットします。
これがどのように見えるか見てみましょう、
この図には master ブランチと Feature ブランチがあり、Feature ブランチで作業している間、他のチームメンバーは master で作業を続けました。
ブランチを master にマージする前にブランチをリベースし、rebase コマンドを実行すると、テストブランチのベースとなるコミットが C1 ではなく C3 ではなく変更されます。以下のグラフは、リベース後の動作を示しています。
変更をマージするとき、コミットはマスターからの最新のコミットに基づいているため、再度早送りマージを実行するだけです。これが、リベースが git の最も強力な機能の 1つである理由です。
このリベースされた Feature ブランチを master にマージすると、コミットロググラフは次のようになります。
Feature ブランチが存在したことがなく、すべてのコミットログが直線になっているようです。
リベースワークフロー
-
機能ブランチを作成する
$ git checkout -b Feature
-
このブランチを変更してコミットします
$ git add modified.txt
$ git commit -m 'coment here'
-
機能ブランチを
マスターにリベースします
$ git rebase master
-
リベースされた機能ブランチを
マスターにマージする
$ git checkout master
$ git merge Feature
リベースの黄金律
黄金律は、歴史の書き直しのためにあなたが公に利用可能にしたブランチをリベースしないことです。
パブリックブランチをリベースし、それらの新しい変更を master ブランチにリベースした後、誰かがそのブランチで作業する場合、他の開発者は元の master ブランチで作業するため、非常に困難です。