注意
🚨公開リポジトリにプッシュしたコミットを、後からリベースしてはダメ。(他の人がプルする前ならOKかも)
コマンドラインで Git リベースを使う > リベースされたコードを GitHub にプッシュする - GitHub Docs
手順
git rebase -i コミットID
(編集したい範囲より1個古いコミット ID を指定する)- エディタが開いて、
コマンド コミットID コミットメッセージ
が古い順に並ぶので、以下のように「コマンド」部分の書換え等を行う。- まとめたい範囲で、一番古いコミットは
pick
のまま、他のpick
をsquash
又はs
に変更。:2,終了行番号s/pick/s/g
(vim の「複数行内検索と一括置換」:開始行番号,終了行番号s/検索文字/置換文字/g
) - 保存終了(
:wq
)
- まとめたい範囲で、一番古いコミットは
- コミットメッセージが古い順に並んだエディタが開くので、そのまま保存終了(
:wq
)。 (ここで変更する方法もあると思うが、よく分かってない) - 後から(プッシュ前)、コミットメッセージを編集したくなったら、
git commit --amend
で編集し、保存終了(:wq
)。
参考
コマンドラインで Git リベースを使う - GitHub Docs
コミットメッセージの変更 - GitHub Docs