kledgeb Ubuntuの使い方や日本語化、アプリの使い方を紹介しています。

ブランチとブランチをリベースして、変更内容を結合する

  ブランチとブランチを「リベース」して、変更内容を結合します。
  ここでは例として、少し複雑なブランチ構成で「リベース」を実行します。

  1.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    現在のブランチは、「new」ブランチであることが分かります。
    同様に、「HEAD」は「new」ブランチを指していることが分かります。


    ここでは例として、「new」ブランチを「master」ブランチにリベースし、「mastsr」ブランチに「new」ブランチの変更内容を結合します。

  2.ブランチの構成

    現在のブランチの構成を図にすると、以下のようになっています。 


    「new」ブランチを「master」ブランチにリベースするため、リベース対象の「コミットオブジェクト」は、以下のようになります。

  • Commit4
  • Commit5 
  • Commit8
  • Commit9

  3.コマンドの実行

    「端末」から、以下のコマンドを実行します。
    コマンドの詳細は、「ファイルの変更内容を異なるブランチに結合するコマンドの説明」を参考にしてください。

git rebase master


  4.コマンドの実行

    以下のように、リベース結果が表示されます。


  5.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    「new」ブランチが指す「コミットオブジェクト」の識別子が、「1.」と異なっています。


  6.ブランチの構成

    現在のブランチの構成を図にすると、以下のようになっています。


    「Commit4」の変更内容を元に、「Commit4’」が新規に生成されています。
    「Commit5」の変更内容を元に、「Commit5’」が新規に生成されています。
    「Commit8」の変更内容を元に、「Commit8’」が新規に生成されています。
    「Commit9」の変更内容を元に、「Commit9’」が新規に生成されています。

    「Commit8」と「Commit9」は、いずれも削除されています。
    一方「Commit4」と「Commit5」は、「fix」ブランチから参照されるため、削除されません。

    以上でリベースは完了です。

newブランチを削除する場合は

  「new」ブランチを削除する場合、「master」ブランチを「new」ブランチと「マージ」 しておきます。

  そうしないと、「new」ブランチが指す「コミットオブジェクト」に到達できなくなります。

  1.masterブランチのチェックアウト

    現在のブラントを「master」ブランチに切り替えるため、「master」ブランチをチェックアウトします。


  2.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    現在のブランチは、「master」ブランチであることが分かります。
    同様に、「HEAD」は「master」ブランチを指していることが分かります。


  3.masterブランチのマージ

    以下のように、 「master」ブランチを「fix」ブランチと「マージ」します。


    「ファーストフォワード」によるマージが行われます。

  4.ブランチの確認

    現在のブランチ構成を確認すると、以下のようになっています。
    「master」ブランチと「fix」ブランチが指す「コミットオブジェクト」の識別子を見てみると、同じ識別子になっています。


  5.ブランチの構成

    現在のブランチの構成を図にすると、以下のようになっています。


    後は、「fix」ブランチを削除すればよいです。


関連コンテンツ
同一カテゴリーの記事
コメント
オプション