間違ったコミットメッセージが生む現場のカオス|チーム開発で差がつく書き方
こんにちは!
今日は「間違ったコミットメッセージが生む現場のカオス」について解説します。
僕が経験した「コミットメッセージ地獄」
正直に告白します。
僕も新人時代、Gitのコミットメッセージをめっちゃテキトーに書いてました。
「update」「fix」「changes」…そんな雑なメッセージばっかり。
後で過去のコードを遡ろうとしたとき、「あ、このバグ修正いつやった?」「このコードなんで追加した?」って完全に迷子になるんですよ。
数年前、プロジェクト途中でバグが発見されて、原因を探るために過去のコミットを調べることになったんです。
ところがメッセージが「fixed」「update」「changes」ばっかりで、実際に何が変わったのか全然分からない。
結局コードの差分を1つ1つ手作業で確認する羽目になって、めっちゃ時間かかったんですよ。
その時に気づきました。
「あ、コミットメッセージってめっちゃ大事やな」って。
現場でよく見るのは、このテの困った状況です:
- 「update」だけのメッセージで、何を更新したのか全然分からない
- 複数の修正を1つのコミットに詰め込んで、メッセージが曖昧
- 日本語と英語がごちゃ混ぜで、チーム内で統一がない
- 絵文字だけとか、意味不明な省略語を使ってる
実務で使える効果的なメッセージの書き方
では、どうやって書くといいのか。
僕が現場で実際に使ってる方法を紹介します。
基本は「1行目に変更内容を簡潔に、2行目以降に詳細を書く」です。
業界標準ともいえる「Conventional Commits」という形式があるんですが、それに従うのがいいですよ。
形式:
type(scope): subject
body
footer
具体例を見てみましょう。
良い例:
feat(header): ナビゲーションメニューにドロップダウン機能を追加
ユーザーからの要望で、カテゴリ一覧をサブメニュー形式で表示できるようにした。
hover時にアニメーション付きで展開される。
Closes #123
悪い例:
update
fixed stuff
見比べると一目瞭然ですよね。
最初の良い例なら、後で見返した時に「あ、このコミットはヘッダーのナビゲーションドロップダウン追加の時のやつだ」ってすぐ分かります。
実践的なポイント:
typeはfeat(機能追加)、fix(バグ修正)、docs(ドキュメント)、style(コード整形)などに統一するscopeは変更した機能やファイルの範囲を括弧内に書く- 1行目は命令形で書く(「〜した」より「〜する」)
- body部分は「なぜそうしたのか」を説明する
- チケット番号があれば footer に記載する
よくある勘違いと対策
勘違い1:「短いメッセージで十分」
最初は戸惑うかもしれませんが、実は後々めっちゃ役に立つんです。
チーム開発では、他の人があなたのコードを読むこともあります。
「なんでこんなコード書いてるの?」という疑問は、コミットメッセージで解決できるんですよ。
勘違い2:「日本語と英語を混ぜていいやん」
これはほんま避けた方がいいです。
チーム内で統一しましょう。
グローバルなプロジェクトなら英語、社内プロジェクトなら日本語など、最初に決めておくといいですよ。
勘違い3:「細かい修正は1つのコミットに詰め込んでいい」
これも現場でよく見るんですが、避けた方がいいです。
1つのコミットは「1つの論理的な変更」を表すようにするのが理想的。
後で何かあった時に git revert で1つのコミットを戻したい時、他の変更まで一緒に消えてしまいますからね。
まとめ
コミットメッセージは、一見地味な作業に思えるかもしれません。
でも、チーム開発では本当に大切です。
3ヶ月後、1年後にあなたのコードを見返す時、そのメッセージが命綱になるんです。
最初は「めんどくさいな」って思うかもしれませんが、やってみると習慣になります。
そして何より、チームの信頼が違います。
「あ、このメッセージなら絶対分かりやすいな」って安心されるようになりますよ。
ぜひ今日から実践してみてください。
Web制作で困ったことがあったら、またこのブログを覗いてくださいね!
― クリオ