インタラクティブモードで、1つ前のコミットオブジェクトに変更内容を統合し、コミットメッセージを指定してリベースを行う
「インタラクティブモード」では、1つ前の「コミットオブジェクト」に変更内容を統合し、コミットメッセージを指定してリベースを行うことができます。コミットオブジェクトのAuthorについて
「コミットオブジェクト」のAuthorは、変更内容が統合される「コミットオブジェクト」のAuthorが使用されます。コミットメッセージについて
コミットメッセージは、変更内容が統合される「コミットオブジェクト」及び、変更内容を統合する「コミットオブジェクト」のコミットメッセージが結合されます。ユーザーは、リベース実行時にコミットメッセージの確認及び修正が可能です。
コマンドの実行例
コマンドの実行例です。1.ブランチの確認
現在のブランチ構成を確認すると、以下のようになっています。現在のブランチは、「fix」ブランチであることが分かります。
同様に、「HEAD」は「fix」ブランチを指していることが分かります。
2.ブランチの構成
現在のブランチの構成を図にすると、以下のようになっています。ここでは例として、「fix」ブランチを「master」ブランチにリベースし、「mastsr」ブランチに「fix」ブランチの変更内容を結合します。
ただし「todoリスト」で「Commit4」のリベース実行時に、「Commit4」の変更内容に「Commit5」の変更内容を統合します。
「fix」ブランチを「master」ブランチにリベースするため、リベース対象の「コミットオブジェクト」は、以下のようになります。
コミットオブジェクト | コミットオブジェクトの識別子 |
---|---|
Commit4 | b3558792781286ca90af046c9318dd9072fe9014 |
Commit5 | a1818429356c581418812fdbaeec830178ca2ec8 |
3.コマンドの実行
コマンドのオプションは、以下のオプションを指定します。ショートオプション | ロングオプション |
---|---|
-i | --interactive |
「端末」から、以下のコマンドを実行します。
コマンドの詳細は、以下を参考にしてください。
ポイントは、赤字の箇所です。
git rebase --verbose --interactive master
4.todoリストの編集
以下のようにテキストエディターが起動し、「todoリスト」が表示されます。ここでは例として、「Commit4」のリベース実行時に、「Commit5」の変更内容を統合します。
「todoリスト」に記述するコマンドは、以下のコマンドを記述します。
ショート | ロング |
---|---|
s | squash |
5.todoリストの編集完了
以下のように「todoリスト」を編集しました。「todoリスト」の編集が終わったら、ファイルを上書き保存して、テキストエディターを終了します。
6.コミットメッセージの入力
「todoリスト」の記述内容に従って、リベースが行われます。「Commit4」のリベース実行時にテキストエディターが起動し、コミットメッセージを入力する画面が表示されます。
コミットメッセージを入力したら、ファイルを上書き保存して、テキストエディターを終了します。
7.リベース完了
「Commit4’」のコミットでは、「Commit5」の変更内容が含まれています。9.ブランチの確認
現在のブランチ構成を確認すると、以下のようになっています。「fix」ブランチが指す「コミットオブジェクト」の識別子が、「1.」と異なっています。
10.ブランチの構成
現在のブランチの構成を図にすると、以下のようになっています。「Commit4」と「Commit5」の変更内容を元に、「Commit4’」が新規に生成されています。