Sourcetreeでリモートリポジトリにプッシュ後のコミットのコメントを修正する

Sourcetreeでリモートリポジトリにプッシュ後のコミットコメントを修正する手順を紹介します。

概要

リモートリポジトリにプッシュしてしまった後にコミットコメントを修正する場合は、リベースをする必要があります。 コミットコメントの修正の場合は、インタラクティブモードのリベースを利用します。
補足
Gitのコマンドで操作する場合はこちらの記事を参照して下さい。

手順

Sourcetreeを起動し、対象のリポジトリを開きます。


コミットの項目をクリックして選択します。右クリックしてポップアップメニューを表示し [(コミットID)の子とインタラクティブなリベースを行う] の項目をクリックします。


[Interactive rebase]のダイアログが表示されます。コミットのリストを確認すると、選択したコミットの項目の次のコミットからの一覧がリストに表示されていることがわかります。


選択されたコミットの次以降のコミットがインタラクティブリベースの対象になるため、コミットコメントを変更したい一つ手前のコミットをクリックして選択し、右クリックしポップアップ メニューの [(コミットID)の子とインタラクティブなリベースを行う] の項目をクリックします。


[Interactive rebase]のダイアログが表示されます。


変更したいコミットコメントのコミットの項目をクリックして選択します。


右クリックするとポップアップメニューが表示されます。[メッセージを編集]の項目をクリックします。


ダイアログが表示されます。ダイアログのテキストボックスには元のコミットコメントが入力されています。


コミットメッセージを修正します。修正後[OK]ボタンをクリックします。


[Interactive rebase]のダイアログに戻ります。コミットコメントが修正されていることが確認できます。ダイアログ右下の[OK]ボタンをクリックします。


メインウィンドウに戻ります。選択した項目からブランチが作成されていることが確認できます。


ブランチの状態を確認します。当初のorigin/masterから先に、新しいコミットが追加されています。コメントを変更する前のコミットは残ったままとなり、コミットコメントを変更したコミットが新しいコミットとして追加されています。


ツールバーの[プル]ボタンをクリックしプルを実行してマージコミットを作成します。


プルを実行すると、マージコミットが作成されます。


マージコミットが作成され、プッシュされる前の状態です。


ツールバーの[プッシュ]ボタンをクリックしプッシュを実行してリモートリポジトリに反映します。


プッシュが完了し、origin/masterorigin/HEAD が更新されます。


以上で処理は完了です。

補足:ツリーの状態

インタラクティブリベースを実行したときのツリーの編集状態がどうなるかを紹介します。
リモートリポジトリをローカルリポジトリに複製した直後の状態です。


[A]のコミットの位置でインタラクティブリベースを実行します。


リベースを実行すると、[A]からブランチが作成され、[B] [C] [D]のコミットが複製され[B'] [C'] [D']のコミットが作成されます。コミットはAのブランチに [A] [B'] [C'] [D'] の順番でコピーされます。


この状態で、[B']のコミットコメントを編集します。(他の編集者に影響が発生するため、既にリモートリポジトリにプッシュされている[B]のコミットを変更することはできません)


リモートリポジトリから[プル]を実行します。


プルを実行すると、ローカルリポジトリにマージコミットが作成されます。


マージコミットを含めたローカルリポジトリに変更をリモートリポジトリにプッシュします。


プッシュすることで、ローカルリポジトリの状態がリモートリポジトリに反映されます。


本流の変更履歴は [A] [B'] [C'] [D'] となります。[B']のコミットコメントを修正していますので、変更履歴のうえでは、[B]のコミットコメントが修正されたように見えます。


上記の操作でプッシュ済みのリモートリポジトリのコミットコメントを修正したことになります。

著者
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
最終更新日: 2020-08-25
作成日: 2020-08-24
iPentec all rights reserverd.