Git チュートリアル - リベース

胡金庫 2024年2月15日
  1. git rebase とは何ですか
  2. リベースワークフロー
  3. リベースの黄金律
Git チュートリアル - リベース

次のような基本的なマージについて説明しました

  • 早送りマージ fast-foward merge

  • 3 方向(再帰)マージ

このチュートリアルでは、Git の最も重要な機能の 1つであるリベースを紹介します。

git rebase とは何ですか

リベース rebase とは、ブランチのルートコミットを変更することを意味します。つまり、master ブランチのように、ベースコミットをマージするブランチの最近のコミットにリセットします。

これがどのように見えるか見てみましょう、

Git 機能ブランチ

この図には master ブランチと Feature ブランチがあり、Feature ブランチで作業している間、他のチームメンバーは master で作業を続けました。

ブランチを master にマージする前にブランチをリベースし、rebase コマンドを実行すると、テストブランチのベースとなるコミットが C1 ではなく C3 ではなく変更されます。以下のグラフは、リベース後の動作を示しています。

Git 機能ブランチ

変更をマージするとき、コミットはマスターからの最新のコミットに基づいているため、再度早送りマージを実行するだけです。これが、リベースが git の最も強力な機能の 1つである理由です。

このリベースされた Feature ブランチを master にマージすると、コミットロググラフは次のようになります。

リベース後の Git ロググラフ

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 ブランチで作業するため、非常に困難です。

著者: 胡金庫
胡金庫 avatar 胡金庫 avatar

DelftStack.comの創設者です。Jinku はロボティクスと自動車産業で8年以上働いています。自動テスト、リモートサーバーからのデータ収集、耐久テストからのレポート作成が必要となったとき、彼はコーディングスキルを磨きました。彼は電気/電子工学のバックグラウンドを持っていますが、組み込みエレクトロニクス、組み込みプログラミング、フロントエンド/バックエンドプログラミングへの関心を広げています。

LinkedIn Facebook