今回はマージリクエストを出すとき、コミットを一つにまとめてくれと言われてやったので忘れないようにやり方をまとめておきます。
まずログを確認します。
git log --oneline
次にリベースします。まとめたいところの一つ下のコミットIDを指定します。
git rebase -i コミットID
※HEAD~2とかで範囲指定もできる。
そうするとファイルが開かれます。デフォルトでは「pick = コミットをそのまま残す」になっているので、一番上以外は「squash」か「fixup」に変更します。
pick コミットID コミットメッセージ
コマンド | 説明 |
(p)pick | コミットをそのまま残す。 |
(r)reword | コミットメッセージを変更。 |
(e)edit | コミット自体の内容を編集。 |
(s)squash | 直前のpickを指定したコミットに統合。 メッセージも統合。 |
(f)fixup | 直前のpickを指定したコミットに統合。 メッセージは破棄。 |
コミットメッセージの編集をする。必要なコミットメッセージ以外はコメントアウトすればいい。
最後に強制プッシュする。
git push -f
※コンフリクトが発生した場合
コンフリクトをエディターで解消したうえで
git add .
git rebase --continue
※なんか間違えてやり直したいとき
git rebase --abort