業務でいつも通りPushしました。
プルリクを送るタイミングあることに気付く。

コミットコメント、間違えとるやん……。
そんな時の対策方法です。
一般的な方法
調べてみると出てくるのですが、以下のような手順が一般的なようです。
- amendオプションをつけて、前コミットの修正を行う。
- fオプションをつけて、強制的にプッシュする!
ちょっとこれはアカンな、と思い先輩に相談した方法です。
前提条件
以下の条件を満たしている時に使える方法です。
- 個人で作業しているブランチであること
- その他のブランチに影響がないこと
- そのブランチをPushしたタイミングが、ブランチ生成のタイミングであること

masterなんて言語道断!
エンジニア人生、詰みます。(たぶん)
ストーリーの設定
ほぼ私の失敗時と同じなのですが、以下のような状況です。
「dev-202006」という、6月リリース用ブランチがあります。
そして私(あなた)は、「work-0514」ブランチをマージするため、プルリクエストを送ろうとしています。
が、明らかにコメントをミスってますね〜。

アバ……?
…てか、もうPushしちゃってるし!ヤベー!
……という状況です。
Push後のコメントの修正方法
amendオプションをつけて、コメントを修正
現在チェックアウトしているブランチが、修正したいブランチであることを確認しましょう。
git commit --amend
すると、エディタが開くので、そこでコメントを修正します。
1 2 3 |
work-0514 [add] アババババばばば ↓ work-0514 [add] テキストの追加 |
更新すると、以下のような文言が出てきます。
1 2 3 4 |
[work-0514 a1f7418] work-0514 [add] テキストの追加 Date: Thu May 14 22:00:23 2020 +0900 1 file changed, 1 insertion(+) create mode 100644 memo.md |
履歴を見に行くと、このように変化しています。
ローカルと、リモートで、コミットコメントの差分があるためです。
ブランチ元にHEADを移動
ローカルと、リモートで差分が起きているので、一旦ブランチ元に居場所を変えましょう。
プルしちゃうと、勝手にマージされた状態になってしまいます。
「dev-202006」ブランチをダブルクリックしてチェックアウトします。
amendしたローカルブランチ名を変更する
ローカルのブランチ名を変更します。分身を作るイメージです。
今回は「work-0514_2」とします。
一時的なものなので、なんでもOKです。
リモートブランチを削除する
ほんっとに注意してください。
共有ブランチを削除しないようにほんっと注意してください。
ダチョウ倶楽部のフリじゃないので、大真面目にやってください。
GitHubの画面からも削除の操作が可能です。
※もちろんGitコマンドからも可能です。
赤いゴミ箱のボタンを押すだけで完了です。
確認もなく削除するので、ちゃんと確認しましょう。
SourceTreeの履歴上では、リモートが削除されませんが大丈夫です。
ブランチを新規作成し、チェリーピックする
では、コメントを修正した分身「work-0514_2」を、正式な「work-0514」としてPushしましょう。
新たにブランチを作成します。
間違えてしまった「work-0514」ブランチですね。
作成できたら、修正後の「work-0514_2」ブランチをチェリーピックします。
すると、「work-0514_2」の修正内容が、「work-0514」に反映されます。
※チェリーピック完了後、自動的にコミットされます。
Pushし直す!
最後に、Pushします。
リモートには間違えてしまった「work-0514」はありませんから、正しいコメントのブランチがPushされますね。
一件落着!
まとめ

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

そのための対策を講じることが、
次やるべきことですね……(自戒)。
【改訂2版】わかばちゃんと学ぶGit使い方入門
私が学生の頃から使っている本です。Gitの概念はもちろん、GitHubの使い方も丁寧に解説しています。SourceTreeというクライアントを使っているので実践的なことも学ぶことができます!