2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

git resetを使ってコミットログをきれいに保つ

Last updated at Posted at 2021-12-09

こんにちは、最近ジムで追い込みすぎて毎日どこかしらが筋肉痛のmu-sukeです。
この記事は株式会社Diverse Advent Calendar2021 、10日目の記事です。

これはなに?

今回は、コミットログをきれいにすることでレビューのしやすさや、ブランチの可読性を高めるよという話をしたいと思います。

🏁この記事のゴール

以下の理解を得ることをゴールとします。

  • コミットログをきれいにする方法
  • コミットログをきれいに保つ理由

ダメな例

before画像

まずアドバイスを受ける前の状態です。
以下のような手順で動作確認を行いました。

  1. dev環境にデプロイするためにリモートブランチにプロダクトとは関係のないテスト用コードをpush
  2. github actionsの手動実行をしてdev環境にデプロイ
  3. dev環境で問題なく試せたのでテスト用コードをrevert

手順2までは問題なく、ポイントとなるのは手順3です。
これではプロダクトに関係のないコミットログが残ってしまい、レビュアーはこの部分のコミットを意識しなくてはなりません。
本来見てほしいプルリクの内容以外のところを意識しなくてはならないのでこのコミットログは正しいとは言えません。

git resetでコミットログから消去する

そこでgit resetの出番です。

git reset --hard commitIDをすることでコミット自体をなかったことにするので、コミットログがきれいになります。

git resetを使ってみた結果がこちらになります。

after画像

🚨注意

git resetの危険性

git resetはコミット自体をなかったことにするので共同作業者がいる場合はオススメされていません。
が、今回のケースでは共同作業者がいない、自分だけが作業する環境だったため使用しました。

mainとかでこれをやるとブランチを切っている人はもれなくコンフリクトが起こるので気をつけましょう

何でもかんでもきれいにすれば良いわけではない

今回はプロダクトに関係のない、テスト用のコードをpushしたかったのでresetを用いてコミットログから削除しましたが、プロダクトの都合(やっぱりこの機能はなくそう 等)の時は実装した痕跡が必要な場合もあるのでrevertすることをオススメします。

まとめ

git resetでプロダクトに不要なコミットをなくすことでレビュアーがレビューしやすいような状態、かつきれいなブランチにすることができました。

よく言われていることですが、何かを解決する手段として銀の弾丸なんてなくて、必ずトレードオフがあるので状況に応じてどちらが適しているかを判断する力をつけることが大事なんだと考えています。

ではまた!

参考記事

↓resetの使い方を理解する上で参考になった記事

↓resetとrevertを理解する上で参考になった記事

↓記事を書く上でかなり参考になった記事

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?