12
5

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 3 years have passed since last update.

ある日の出来事です。
いつも優しくて、すごくお世話になっている先輩が、それを見た瞬間、鬼の形相になりました。

# コミットメッセージ
Update: 開発完了

冷や汗が止まりませんでした。。
もう二度とこのような悲しい出来事を生まないために、コミットメッセージの重要さと書くべきことについて考えていきます。

なぜ重要なのか

コミットメッセージは将来の効率化のために書くものだと思っています。

例えば、
コードレビューをする際も、
レビュアーがメッセージを見ただけで
どのような改修をしたかが分かる状態になっていれば、スムーズにレビューを行うことができます。
コード修正においても、修正意図が分かるだけで、対象コードの修正要否が判断しやすくなると思います。

git blameしたときに「開発完了」とだけ伝えられても何も分からず、
結局コードや過去の案件を調べなきゃいけなくなりますよね。(本当にごめんなさい。)

書くべきこと

5W1Hという言葉をよく耳にしますが、
gitでは以下のことが把握できるようになっています。

  • When(いつ)
    • いつ変更を加えたのかはタイムスタンプを見れば分かる
  • Where(どこで)
    • 何に変更を加えたのかはリソース (file/dir) 名で分かる
  • Who(誰が)
  • 誰が変更を加えたのかは author を見れば分かる
  • What(何を)
    • どうやって変更を加えたのかはdiffを読めば分かる
  • Why(なぜ)
    • なぜ変更を加えたのかはコミットメッセージを読めば分かる
  • How(どのように)
    • どうやって変更を加えたのかは実装を読めば分かる

つまり、コミットメッセージには「Why」を書くべきで、変更の意図を伝えることが大事だということです。

加えて、プレフィックスをつけると、
どのような変更があったのかも分かりやすくなります。

プレフィックス例 

  • Add:
    • 機能の追加やファイル追加
  • Fix:
    • バグ修正
  • Update:
    • 更新
  • Delete:
    • 機能削除やファイルの削除
  • Revert:
    • コミットの巻き戻し
  • Marge:
    • 統合
  • Move:
    • リソースの移動
  • Rename:
    • 名前の変更

過ちを正してみた

before
Update: 開発完了
after
Update: ○○システム Topページのロゴ画像を変更

まだまだ改善の余地はありそうですが、
一旦、鬼の形相は見なくて済みそうです。

最後に

私自身、コミットメッセージはとりあえず書いておけばいいと思っていました。
それは大きな間違いで、
将来の仲間への大きな負担となってしまい、
開発効率低下へと繋がっていきます。

思い当たる節がある方は、本記事をきっかけに改善していきましょう!

参考文献

Who-T OnCommitMessage

お知らせ

エイチームグループでは一緒に活躍してくれる優秀な人材を募集中です。
興味のある方はぜひともエイチームグループ採用ページWebエンジニア詳細ページ)よりお問い合わせ下さい。

あるいは、Qiita Jobs引越し侍Webエンジニアチーム自社サービスWebエンジニア/インフラからサービス改善まで!求む!引越し侍大規模リプレイスにおけるフロントエンドのリードエンジニア募集!の記事をみて、興味が出てきた方は是非Qiita Jobsのチャットでメッセージをください。

明日は「キング・クリムゾン.js」で沸かせてくれた@heronaの記事になります!
乞うご期待!!

12
5
1

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
12
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?