【物語で学ぶ】 Pushしてしまったコミットコメントを修正する方法

Gitの履歴 IT関連

業務でいつも通りPushしました。

プルリクを送るタイミングあることに気付く。

僕

コミットコメント、間違えとるやん……。

そんな時の対策方法です。

一般的な方法

調べてみると出てくるのですが、以下のような手順が一般的なようです。

  • amendオプションをつけて、前コミットの修正を行う。
  • fオプションをつけて、強制的にプッシュする!

ちょっとこれはアカンな、と思い先輩に相談した方法です。

前提条件

以下の条件を満たしている時に使える方法です。

  • 個人で作業しているブランチであること
  • その他のブランチに影響がないこと
  • そのブランチをPushしたタイミングが、ブランチ生成のタイミングであること
とある会社員
とある会社員

masterなんて言語道断!
エンジニア人生、詰みます。(たぶん)

ストーリーの設定

ほぼ私の失敗時と同じなのですが、以下のような状況です。

「dev-202006」という、6月リリース用ブランチがあります。
そして私(あなた)は、「work-0514」ブランチをマージするため、プルリクエストを送ろうとしています。

コミットコメントを間違えている状態

が、明らかにコメントをミスってますね〜。

僕

アバ……?
…てか、もうPushしちゃってるし!ヤベー!

……という状況です。

Push後のコメントの修正方法

amendオプションをつけて、コメントを修正

現在チェックアウトしているブランチが、修正したいブランチであることを確認しましょう。

git commit --amend

すると、エディタが開くので、そこでコメントを修正します。

更新すると、以下のような文言が出てきます。

履歴を見に行くと、このように変化しています。

コミットコメントを修正後の状態

ローカルと、リモートで、コミットコメントの差分があるためです。

ブランチ元にHEADを移動

ローカルと、リモートで差分が起きているので、一旦ブランチ元に居場所を変えましょう。
プルしちゃうと、勝手にマージされた状態になってしまいます。

「dev-202006」ブランチをダブルクリックしてチェックアウトします。

HEADを変更

amendしたローカルブランチ名を変更する

ローカルのブランチ名を変更します。分身を作るイメージです。

ブランチの名前変更

名前変更の確認

今回は「work-0514_2」とします。

一時的なものなので、なんでもOKです。

リモートブランチを削除する

ほんっとに注意してください。
共有ブランチを削除しないようにほんっと注意してください。
ダチョウ倶楽部のフリじゃないので、大真面目にやってください。

GitHubの画面からも削除の操作が可能です。
※もちろんGitコマンドからも可能です。

GitHubからのブランチ削除

赤いゴミ箱のボタンを押すだけで完了です。

確認もなく削除するので、ちゃんと確認しましょう。

SourceTreeの履歴上では、リモートが削除されませんが大丈夫です。

ブランチを新規作成し、チェリーピックする

では、コメントを修正した分身「work-0514_2」を、正式な「work-0514」としてPushしましょう。

新たにブランチを作成します。

間違えてしまった「work-0514」ブランチですね。

新規ブランチ作成

作成できたら、修正後の「work-0514_2」ブランチをチェリーピックします。

チェリーピックをする

すると、「work-0514_2」の修正内容が、「work-0514」に反映されます。
※チェリーピック完了後、自動的にコミットされます。

チェリーピック完了確認

Pushし直す!

最後に、Pushします。
リモートには間違えてしまった「work-0514」はありませんから、正しいコメントのブランチがPushされますね。

一件落着!

まとめ

ジョージ・眉間シワ男
ジョージ・眉間シワ男

そもそもPush前にちゃんと確認しろよ。

僕

そのための対策を講じることが、

次やるべきことですね……(自戒)。

タイトルとURLをコピーしました