「あ、コミット忘れた…」を防ぐ!Gitコミットメッセージの実践ルール|現場で使える実践テクニック

「あ、コミット忘れた…」を防ぐ!Gitコミットメッセージの実践ルール|現場で使える実践テクニック
C
クリオ
Web制作ディレクター / フロントエンジニア

こんにちは!

今日は「Gitコミットメッセージの実践ルール」について解説します。
これ、めっちゃ大事なのに、みんな意外とテキトーなんですよね。

なぜコミットメッセージが重要なのか

僕も最初の頃は、コミットメッセージを「修正」とか「update」みたいな一言で済ませちゃってました。
そしたらね、3ヶ月後に「このコミットって何が変わったん?」って過去のコードを追っかけるハメになるんですよ。
ほんま無駄やん。

Gitのコミットメッセージって、実は履歴追跡ツールではなく「コミュニケーションツール」なんです。
6ヶ月後のあなたに、そしてチームメンバーに「なぜそのコード変更が必要だったのか」を伝えるためのものなんですよ。

現場でよく見るのは、バグ修正でもコミットメッセージが曖昧で、後からトラブル再発時に原因がわからなくなってるケースです。
そういうときに「あのときのコミット見たら一発で理由がわかるんだけどな〜」って思うことばっかり。

実践的なメッセージ構成:僕が現場で使ってるテンプレート

僕のチームでは、こういう構成でコミットメッセージを書くルールにしてます:

[タイプ] 概要(1行、命令形で50文字以内)

詳細な説明(72文字の行幅で折り返し)
複数行可能

関連Issue: #123

具体的な例を見せますね。

良い例:

[fix] ヘッダーナビゲーションのハンバーガーメニュー未表示バグを修正

モバイルビュー(幅768px以下)でハンバーガーメニューのdisplayが
noneになったまま表示されない問題を解決。
CSSのメディアクエリ条件を修正し、toggleクラス適用時の
visibility プロパティを確認。

関連Issue: #456

よくあるNG例:

修正

update

ハンバーガーメニューの件

ね、全然違うじゃないですか。
タイプ([fix][feat][docs]など)を先頭につけることで、ログがめっちゃ見やすくなるんです。

僕が使ってるタイプはこんな感じです:

  • [feat] 新機能追加
  • [fix] バグ修正
  • [docs] ドキュメント更新
  • [style] コード整形(機能変更なし)
  • [refactor] リファクタリング
  • [test] テストコード追加・修正
  • [perf] パフォーマンス改善

これをチーム全体で統一しとくと、git log --onelineで見たときに一目瞭然です。

チーム開発でよくあるNG例と改善策

実際のプロジェクトで遭遇した「あるある」を紹介します。

ケース1:タイムスタンプだけのメッセージ

「2024/01/15 16:30」みたいにね。
これ、何が変わったか全くわかりませんやん。
コミットした時刻なんて、もう履歴に自動記録されてるんですよ。

改善策:
最初の1行は「何が変わったか」を日本語で書く。
詳細は箇条書きで説明する。

ケース2:過度に長いメッセージ

背景説明が長すぎて、本当に変更した内容が埋もれちゃってるやつ。
僕も昔、その日の会議内容とか全部書いてました。
でもそれって Slack やプロジェクト管理ツールに書くべき内容なんですよ。

改善策:
概要は50文字以内にして、詳細は別行で。
背景は詳細説明の中にシンプルに。

ケース3:複数の変更が混在したコミット

バグ修正しつつ、デザイン調整も、リファクタリングもしちゃった…みたいなやつです。
後からコード追跡するときに超めんどくさいんですよ。

改善策:
1コミット = 1つの変更 を心がける。
複数の独立した変更があるなら、git add -p (パッチモード)で部分的にステージングしましょう。

これだけで、チーム内のレビュー効率も、後からのバグ原因特定も、めっちゃ向上します。

まとめ

Gitコミットメッセージは「今のあなたが、未来のあなた(とチームメンバー)に残すメッセージ」なんです。
たった1行でも、そこに「なぜ」が込められていると、追跡が楽になるんですよ。

ルールは最初は面倒に感じるかもしれませんが、慣れると習慣になります。
そしたら、チーム全体の開発効率がグッと上がるんです。
ぜひ試してみてくださいね。

Web制作で困ったことがあったら、またこのブログを覗いてくださいね!

― クリオ