ブログ

「コードレビューの修正(1回目)」みたいなコミットメッセージを避ける

## はじめに:コミットメッセージは「コードレビューの修正」!? フィヨルドブートキャンプのコードレビューでよく指摘してるシリーズです。 コードレビューを受けるといろいろとコードの修正が必要になります。 その際、以下のようなコミットメッセージを使っている人は結構多いのではないでしょうか? > コードレビューの修正(1回目) > > ![Screenshot 2023-11-18 at 11.53.51.png](https://bootcamp.fjord.jp/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBeWxGQXc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--b3f85a980c67508fbe57a2bc4fb5dde09394ce8c/Screenshot%202023-11-18%20at%2011.53.51.png) 多くの場合、この「コードレビューの修正(1回目)」という1コミットの中にコードレビューで受けた指摘の修正が全部詰め込まれています。 ## コミットメッセージはソフトウェアの歴史として残る しかし、業務ではこうしたコミットメッセージは望ましくありません。 というのも、コミットメッセージの一覧(コミット履歴)は、そのソフトウェアの「歴史」として長く残るからです。 たとえば、bootcampアプリのコミット履歴を覗いてみてください。 このコミット履歴を見ると、様々な開発者が様々な変更をbootcampアプリに加えてきていることがわかります。 この一覧を見れば、誰がいつどんな変更を加えたのかがだいたい把握できます。 https://github.com/fjordllc/bootcamp/commits/main ![1.png](https://bootcamp.fjord.jp/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBNFJSQXc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--51154ac8478196647c01ba6e189fe739af2ef045/1.png) ## 「知らんがな」と思われるようなメッセージを残さない しかし、もしこの中に「コードレビューの修正(1回目)」というコミットメッセージが含まれていたらどうでしょうか? これだと具体的にどんな変更が入ったのかわからないですよね。 ![2.png](https://bootcamp.fjord.jp/rails/active_storage/blobs/redirect/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBNE5SQXc9PSIsImV4cCI6bnVsbCwicHVyIjoiYmxvYl9pZCJ9fQ==--5717b4afb3910aac8fc88596b8c2810514e5ed2b/2.png) そもそもコードレビューを受けたり、指摘内容を修正したりするのはソフトウェアを開発する過程のひとつにすぎません。 ただの過程(もしくはただの作業)をソフトウェアの歴史として残したとて、後から見た人は「知らんがな」で終わってしまいます。 ## まとめ というわけで、 **コミットメッセージには数年後に読み返したときに「誰が、いつ、どんな変更を加えたのか」がわかるような内容を残してください。** そして、その意識を持つようになると、自ずとコミットの単位(コミットの粒度)も細かくなっていくはずです。 ### あわせて読みたい [【初心者向け】「コミットの粒度がわからない問題」の模範解答を考えてみた \#Rails \- Qiita](https://qiita.com/jnchito/items/40e0c7d32fde352607be)

著者


伊藤 淳一のアイコン画像

伊藤 淳一

プログラマー

[株式会社ソニックガーデン](https://www.sonicgarden.jp/)のプログラマ。2017年11月に『[プロを目指す人のためのRuby入門](https://gihyo.jp/book/2021/978-4-297-12437-3)』を出版。電子書籍『[Everyday Rails - RSpecによるRailsテスト入門](https://leanpub.com/everydayrailsrspec-jp/)』の翻訳者でもある。
  • プロを目指す人のためのRuby入門 言語仕様からテスト駆動開発・デバッグ技法まで
  • Everyday Rails - RSpecによるRailsテスト入門