こんにちは、最近ジムで追い込みすぎて毎日どこかしらが筋肉痛のmu-sukeです。
この記事は株式会社Diverse Advent Calendar2021 、10日目の記事です。
これはなに?
今回は、コミットログをきれいにすることでレビューのしやすさや、ブランチの可読性を高めるよという話をしたいと思います。
🏁この記事のゴール
以下の理解を得ることをゴールとします。
- コミットログをきれいにする方法
- コミットログをきれいに保つ理由
ダメな例
まずアドバイスを受ける前の状態です。
以下のような手順で動作確認を行いました。
- dev環境にデプロイするためにリモートブランチにプロダクトとは関係のないテスト用コードをpush
- github actionsの手動実行をしてdev環境にデプロイ
- dev環境で問題なく試せたのでテスト用コードをrevert
手順2までは問題なく、ポイントとなるのは手順3です。
これではプロダクトに関係のないコミットログが残ってしまい、レビュアーはこの部分のコミットを意識しなくてはなりません。
本来見てほしいプルリクの内容以外のところを意識しなくてはならないのでこのコミットログは正しいとは言えません。
git resetでコミットログから消去する
そこでgit resetの出番です。
git reset --hard commitID
をすることでコミット自体をなかったことにするので、コミットログがきれいになります。
git resetを使ってみた結果がこちらになります。
🚨注意
git resetの危険性
git resetはコミット自体をなかったことにするので共同作業者がいる場合はオススメされていません。
が、今回のケースでは共同作業者がいない、自分だけが作業する環境だったため使用しました。
mainとかでこれをやるとブランチを切っている人はもれなくコンフリクトが起こるので気をつけましょう
何でもかんでもきれいにすれば良いわけではない
今回はプロダクトに関係のない、テスト用のコードをpushしたかったのでresetを用いてコミットログから削除しましたが、プロダクトの都合(やっぱりこの機能はなくそう 等)の時は実装した痕跡が必要な場合もあるのでrevertすることをオススメします。
まとめ
git resetでプロダクトに不要なコミットをなくすことでレビュアーがレビューしやすいような状態、かつきれいなブランチにすることができました。
よく言われていることですが、何かを解決する手段として銀の弾丸なんてなくて、必ずトレードオフがあるので状況に応じてどちらが適しているかを判断する力をつけることが大事なんだと考えています。
ではまた!
参考記事
↓resetの使い方を理解する上で参考になった記事
↓resetとrevertを理解する上で参考になった記事
↓記事を書く上でかなり参考になった記事