【GitHub】リベース:複数のコミットを1つにまとめる方法!

この記事からわかること
- Gitで複数のブランチを1つにまとめる方法
- git rebaseコマンドの使い方
- ローカルではなくリモートにプッシュ済みの場合の解決方法
\ アプリをリリースしました /
リベース:rebaseとは
Gitのリベース(rebase)とは、ブランチ履歴を整理するためのコマンドです。リベースの使い所は複数のコミットに切り分けたが、コミット履歴が煩雑になってしまい、整理したい場合に複数のコミットを1つのコミットにまとめたい時です。
使い方
リベースするためにはまずgit log --oneline
でコミット履歴を確認しておきます。
この「コメント3」と「コメント2」のコミットをまとめて1つにするにはrebase
コマンドに-i
オプションで HEAD~2
(HEADから2つ目まで)を指定して実行します。すると以下のような画面になります。
Vim
で操作できるのでi
でインサートモードに切り替えてpick
となっているところをsquash
に変更し:wq
でファイルを閉じます。
続いてコメントを編集することができるので希望のコメントに変更して:wq
でファイルを閉じます。#
で始まる部分はコメントには含まれないので不要なコメントを削除するだけとかでも大丈夫です。
これでリベースは完了です。履歴を確認してみると以前の2つのコミットはたらしいコミットに変更されていることがわかります。
リモートにプッシュしていた場合
リモートにすでにコミットをプッシュしていたがリベートしたい場合は、先ほどの手順でリベース後にgit push -f
で強制プッシュすることで解決することができます。
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。