はじめに
![ぴんくうさぎ](https://midorigame-jo.com/wp-content/uploads/2022/05/twitter__osinHRE_400x400-150x150.jpg)
チームリーダーにコミット履歴を綺麗にしてから
pushしてねと言われたよ。
開発中はこまめにコミットしていて、後から見ると
自分でも何が何だかよくわかんないな。。
どうすればいいの?
![みどりがめ](https://midorigame-jo.com/wp-content/uploads/2022/01/twitter_Oej_GvwJ_400x400-1-150x150.jpg)
なるほど、rebaseコマンドを使用することで
複数のコミットをまとめることができるよ。
複数のコミットをまとめる
要点
rebaseコマンドのiオプションを使用することで複数のコミットを一つにまとめることができます。iオプションというのは、–interactiveの略で「対話的」という意味です。エディタが立ち上がり、対話的に履歴の編集を行うことができます。
上記のrebaseコマンド叩いたあとのエディタ上での操作では、
- コミットメッセージの編集は不要な場合→fixupを使う。
- コミットメッセージを編集したい場合→squashを使う。
fixupとsquashの違いについては、こちらの記事が分かりやすかったので気になる方はご覧ください。
具体的な使い方については、以降をご確認ください。
コミットメッセージの編集は不要な場合
まずは、「git log –oneline」コマンドでコミット状況を確認します。
下記のように、5つのコミットがあり、「third commit2」を「third commit」にまとめたいとします。
![コミット履歴(rebase前)](https://midorigame-jo.com/wp-content/uploads/2022/10/image-4.png)
rebase -iコマンドを使用すると下記のエディタが立ち上がります。
編集するのは上から3行のpickと書かれた箇所です。エディタに表示される、コミット履歴は上が古いもの、下が新しいものとなっていますね。
git rebase -i HEAD~3
![rebaseコマンド(編集画面)](https://midorigame-jo.com/wp-content/uploads/2022/10/スクリーンショット-2022-10-02-12.11.31.png)
third commit2をthird commitにまとめたい場合、下記のように「pick→fixup」に書き換え、エディタを保存します。
![rebase(修正内容)](https://midorigame-jo.com/wp-content/uploads/2022/10/image-2.png)
git log –onelineで確認するとthird commitのみになっていることを確認できました。
![rebase結果](https://midorigame-jo.com/wp-content/uploads/2022/10/image-3.png)
コミットメッセージも編集したい場合
まずは、「git log –oneline」コマンドでコミット状況を確認します。
下記のように、4つのコミットがあり、second~fourthの3つのコミットを「second commit」として一つにまとめたいとします。
![rebase前](https://midorigame-jo.com/wp-content/uploads/2022/10/image-3.png)
rebase -iコマンドを使用すると先ほどと同様、エディタが立ち上がります。
今回はthirdとfourthの箇所をpick→squashに修正して、保存します。
![rebase(編集画面)](https://midorigame-jo.com/wp-content/uploads/2022/10/image-5.png)
すると下記のようにメッセージを編集する画面になります。
![rebase(メッセージ編集画面)](https://midorigame-jo.com/wp-content/uploads/2022/10/image-6.png)
今回はsecond commitに一つにまとめるので、以下のように修正して保存します。
![rebase(メッセージ編集画面)](https://midorigame-jo.com/wp-content/uploads/2022/10/スクリーンショット-2022-10-02-12.33.02.png)
git log –onelineをするとコミットがまとめられていることが確認できました。
![rebase後の確認](https://midorigame-jo.com/wp-content/uploads/2022/10/image-7.png)
終わりに
本記事はここまでとなります。ご覧いただきありがとうございました。
ご指摘等がございましたら頂けますと嬉しいです。
引き続き、プログラミングについて定期的に発信していきますのでよろしくお願いします!
また、もしよろしければtwitterもフォローしていただけると嬉しいです。
コメント