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

特定のコミットオブジェクトの繋がりを変更し、履歴を書き換える 

  「リベース」では、特定の「コミットオブジェクト」の繋がりを変更し、履歴を書き換えることもできます。

  1.ブランチの確認

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


  2.ブランチの構成

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


    ここでは例として、「Commit5」を、「Commit2」にリベースします。
    「リベース」に必要な「コミットオブジェクト」の情報は、以下のようになります。

コミットオブジェクト コミットオブジェクトの識別子
Commit2 1435f6869ab8390855ad33f52c641c1e0d93c1b2
Commit4 72d1432b877e6105139d0bc065205490d56badc7

  3.コマンドの実行

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

git rebase --verbose --onto 1435 72d1 master


    「Commit4」は、「master」ブランチの1つ前の「コミットオブジェクト」であるため、以下のように相対指定でも良いです。

git rebase --verbose --onto 1435 master^ master

  4.コマンドの実行結果

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


    ここで「マージコンフリクト」が発生したため、「マージコンフリクト」を解消しました。

  5.リベースの続行

    以下のコマンドを実行し、リベースを続行します。

git rebase --continue


  6.ブランチの確認

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


  7.ブランチの構成

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


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

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