スキップしてメイン コンテンツに移動

【Day 19】プロの「コミットメッセージ・プッシュ作法」(Conventional Commits)

Git & GitHub 超入門 Day 19
👨‍🏫
皆さん、こんにちは! 本講座の専任講師です。
前回のDay 18では、世界標準のブランチ命名規則とチケット連携フォーマットをマスターしましたね。
さて、本日のテーマは、チーム開発の信頼性を決定づける最も重要な作法、「プロのコミットメッセージ・プッシュ作法(Conventional Commits)」です!
ITエンジニア歴30年以上の皆さん、Subversion (SVN) や Visual SourceSafe (VSS) で開発していた当時、コミットログに「修正」「更新」「完了」「20261017作業」といった一言だけを書いて終わらせていませんでしたか?
集中型SVNではコミットログが多少雑でも、フォルダ単位の最新状態さえ動いていれば何とかなっていたかもしれません。
しかし、GitとGitHubを基盤とする現代のチーム開発では、コミットメッセージは「未来の自分や仲間へ送る設計意図の手紙」であり、「CI/CDによるリリースノート自動生成の入力データ」そのものです。
もし「修正」としか書かれていないコミットにバグが混入していたら、git blame や git bisect で調査しても「なぜこのコードを追加したのか(Why)」が全く分からず、誰も修正できなくなってしまいます。
本日は、世界共通の規約である『Conventional Commits』の基本型から、プロが実践する『黄金3段構成(要約・空行・Why本文)』、C#現場でのバグ修正Before/After、そしてCopilotやClaudeを使ったAI自動生成テクニックまで余すところなく解説します!

① 導入・本日の達成目標

「コミットメッセージなんて、自分が後でなんとなく思い出せればいい」——もしそう思っているなら、今すぐその意識を変える必要があります。
コードの差分(git diff)を見れば、「どこを変更したか(What)」は誰でも分かります。
しかし、「なぜその変更が必要だったのか」「なぜ他の手段ではなくこの実装を選んだのか」(Why)は、コミットメッセージにしか残すことができません。

🎯 本日のゴール
  • 「修正」「バグ直した」がもたらす技術的負債と、メッセージ品質の重要性を理解する
  • 世界標準規約「Conventional Commits」の主要プレフィックス(feat, fix, refactor等)を完全習得する
  • 1行目要約・2行目空行・3行目Why本文からなる「黄金3段構成」をマスターする
  • C#現場での実例を学び、GitHub CopilotやClaude等のAIに規約コミットを自動生成させる

② 【図解】ダメなコミット履歴 vs プロのコミット履歴

まずは、中身のない一言コミットが並ぶ「無法地帯」と、Conventional Commitsで構造化された「プロのコミット履歴」の違いを図解で対比してみましょう。

ダメなコミット履歴 vs プロのコミット履歴
▲ 【図解①】「修正」「バグ直した」のカオスと、Conventional Commitsによる美しい履歴の対比

一言コミットが現場にもたらす「3大悲劇」

  1. アンタッチャブルコードの誕生: git blame で問題のコード行を調べたとき、コミットログが「修正」だと、なぜその条件分岐が追加されたのか(仕様なのか、暫定回避なのか)が分からず、誰も怖くて触れなくなります。
  2. プルリクエスト(PR)レビューの長期化: コミット単位の意図が伝わらないため、レビュアーは膨大なコード差分を頭から全て読み解く必要があり、レビュー待ち時間が何日も発生します。
  3. 自動リリースノート生成の破綻: 現代のGitHub Actionsでは、コミットログから「v1.2.0 新機能一覧」「バグ修正一覧」を自動生成するツール(semantic-release等)が標準です。メッセージが適当だと、リリースノートを手作業で書く羽目になります。

③ 【現場のデファクト】Conventional Commits 主要プレフィックス

世界中のOSSプロジェクトや有力IT企業で広く採用されているコミット規約が「Conventional Commits」です。
基本構文は非常にシンプルで、以下のフォーマットに従って記述します:

現場のデファクト!Conventional Commits 主要プレフィックス
▲ 【図解②】feat:, fix:, refactor:, chore:, docs:, test: の主要型完全ガイド
<type>(<scope>): <description>

絶対に覚えるべき主要プレフィックス型一覧

プレフィックス (Type) 変更内容・用途 SemVer連動 具体例
feat: 新しい機能やAPI・画面の追加 MINOR (0.X.0) feat(auth): JWT自動更新APIを追加
fix: 不具合・バグの修正 PATCH (0.0.X) fix(user): ページング境界値例外を修正
refactor: 振る舞いを変えないコード整理・構造改善 なし refactor(db): DbContextをDI注入に移行
perf: パフォーマンス向上(実行速度・省メモリ) PATCH (0.0.X) perf(linq): 非同期ストリーミング化
chore: ビルド設定、パッケージ更新、雑務 なし chore(deps): EF Core 8.0.3に更新
docs: ドキュメントのみの追加・修正 なし docs(api): Swaggerの説明文を更新
test: 単体テスト・統合テストの追加や修正 なし test(auth): トークン失効テスト追加
style: 空白、フォーマット、セミコロン等の修正 なし style: dotnet format による整形

④ 【黄金3段構成】要約・空行・本文(Why)とC#開発の実践例

型プレフィックスが決まったら、次はメッセージ全体の「構造」です。
Gitの設計思想に基づいた世界標準の書き方が、以下の「黄金3段構成」です:

コミットメッセージの黄金3段構成 & C#実例
▲ 【図解③】要約タイトル・空行・Why本文・チケット連携の3段構成とC#開発での実践
fix(auth): トークン失効時のNullReferenceExceptionを修正 ← 1行目: 要約タイトル(50字以内)

← 2行目: 【超重要】必ず空行を入れる!
リフレッシュトークンがAPIからnullで返却された場合に、
UserService.cs 内の HandleCallback メソッドで NullReferenceException が
発生し、Webアプリが異常終了する不具合を修正しました。
null安全演算子(?.)の導入と、安全な再認証フローを追加しています。

Closes #102 ← フッター: チケット連携(PRマージで自動クローズ)

なぜ「2行目の空行」が絶対に外せないのか?

Gitでは、ターミナルで git log --oneline を実行した際や、GitHubのコミット一覧画面で、「1行目の文字列だけを要約タイトルとして抽出して表示する」という仕様になっています。
もし2行目に空行を空けずに本文を続けて書いてしまうと、Gitは「どこまでがタイトルか」を判別できず、本文全体が1行に押し込められて画面表示が著しく崩壊してしまいます。
「1行目と3行目の間には必ず空行を挟む」——これはGitを扱うすべてのエンジニアが守るべき鉄則です。

⑤ 【AI時代の開発作法】AIを活用したプロ仕様コミット自動生成

「毎回Conventional Commitsを考えて書くのは面倒くさい…」——そう感じる方も多いでしょう。
現代の開発現場では、「コード差分(git diff)をAIに読み込ませて、規約に沿ったコミットメッセージを自動生成させる」のが標準的なワークフローになっています。

AIを活用したプロ仕様コミットメッセージ自動生成
▲ 【図解④】git diff からAI(Copilot / Claude / Antigravity)で規約コミットを自動生成するフロー

コピペで使える!AI指示プロンプトテンプレート

# タスク指示
以下の git diff (変更差分)を分析し、Conventional Commits 規約に従った
プロ仕様のコミットメッセージを日本語で作成してください。

# 満たすべき要件
1. 1行目: <type>(<scope>): <50字以内の要約タイトル>
2. 2行目: 必ず空行
3. 3行目以降: なぜこの変更を行ったのか(Why・背景)、影響範囲を箇条書きで記述
4. チケット連携: Closes #102

# 差分データ (git diff)
(ここに git diff の出力を貼り付け)

Claude Code、GitHub Copilot CLI、Google AntigravityなどのAIエージェントにこのプロンプトを投げるだけで、人間が考えるよりも正確で美しいコミットメッセージが数秒で完成します!

⑥ 📌 本日のまとめ・理解したい最重要ポイント

第19回の講義、お疲れ様でした! プロのコミットメッセージ・プッシュ作法の最重要ポイントを総復習しましょう。

  • 「修正」「バグ直した」だけの一言コメントは絶対撲滅!: コード差分でWhat(何をしたか)は見えても、Why(なぜそうしたか)はメッセージにしか残せない。
  • Conventional Commitsの主要プレフィックス型を活用: feat: (新機能)、fix: (バグ修正)、refactor: (構造改善)、chore: (雑務)、docs: (文書)、test: (テスト)。
  • 黄金3段構成の徹底: 1行目要約タイトル(50字以内)、2行目空行(git log --oneline対策)、3行目Why本文、末尾チケット連携(Closes #Issue)。
  • AIによる自動生成で時短と品質を両立: git diff をAIに渡して規約コミットを出力させ、人間が最終確認してスマートにコミットする。
次回【Day 20】は、チームに迷惑をかけない最終防衛ライン「プッシュ前の5大セルフチェックリスト」をお届けします! デバッグコード混入や機密情報漏洩を100%防ぐプロのプッシュ前ルーティンを学びます。お楽しみに!

コメント

このブログの人気の投稿

【Perfume】Perfume 3rd Tour 「JPN」さいたまスーパーアリーナに行って参りました~

Perfume 3rd Tour 「JPN」1月28日、29日の2daysで参戦して参りました。 ファンクラブ会員の選考抽選会に28日、29日の両日で申し込んでいたんですが、両方とも当選していたという嬉しい誤算。 仕事だぁ、なんだかんだと紆余曲折ありまして28日の参戦は危ぶまれていたのですが、なんとかかんとか28日は40分遅刻しながらも参戦、29日はフル参戦する事が出来ました(∩´∀`)∩

Perfume、2025年末で“コールドスリープ(活動休止)”へ──東京ドーム2daysの記録と、公式・各界・ファンの声

  1) 公式発表・基本情報 活動休止(コールドスリープ)を正式発表 2025年9月21日、公式サイト「 Perfumeより 」で、2026年から一度コールドスリープに入ると発表。再始動の意思(“新しいPerfume”として戻る)も明記。 Perfume Official Site 今後の運用告知(配信・上映など) 同21日付の「 今後のPerfumeに関して 」で、9/23(火・祝)東京ドーム公演の LIVESHIP全世界生配信 および 全国ディレイビューイング 決定を案内。特設サイトも併記。 Perfume Official Site +1 公式グッズ **「Perfume Calendar 2026」**発売決定(B2壁掛け/表紙+2カ月1枚×6枚+ポスター)。テーマは“フルーツ”。 Perfume Official Site 2) 東京ドーム2days(9/22・23)要点 公演タイトル: ZO/Z5 Anniversary “ネビュラロマンス” Episode TOKYO DOME 。日程・開場/開演・会場・物販等の実務情報は特設で公開。 Perfume Official Site 9/23公演を世界配信(LIVESHIP) /ディレイビューイング実施。 Perfume Official Site 海外向け報道(英語)も「 indefinite hiatus 」として広く配信。 The Times of India 国内英字メディアも速報。 朝日新聞 3) 現地レポ( メリ爺 )から見える空気 あなたの現地記録(9/24公開)を、ファクトと現場情景の両面で反映: 両日参戦 。22日は アリーナ 、23日は 1階席から俯瞰 。前日の発表を受け、開演前のザワつき→MC後に“いつもの一体感”へ。開演は22日 18:45 頃。オープニングは**P³ツアー東京ドーム(2020/2)**と同趣向で“回収”の演出。 メリ爺のゲーム万歳 MC所感 :解散ではなく前向きな休止で不安を和らげる内容。 かしゆか の涙、 のっち の気丈さ、 あ〜ちゃん の思い出語り──3人の結束と「 また戻る 」約束が強く刻まれた。 メリ爺のゲーム万歳 体感時間 : “3時間弱”級のボリューム ながら“過去一...

ニンテンドースイッチでオンラインゲームを遊ぶには?

モンスターハンターライズが発売になって、家族でモンハン楽しみたい人が増えたみたいですね。 某ブログの検索キーワードを調べると、モンハンを家族でやるにはどうしたらいいのか?を調べている人が沢山いるのがわかります。 ※これでも一部  家族で協力するにはSwitch2台、ソフトも2つ購入する必要があります。 1台のスイッチでは遊べませんし、ソフト1つでも遊べません。 でも、1台のスイッチで別々アカウントがあれば交代で遊ぶこともできますよ。セーブデータもしっかり分かれます。 Switchのオンラインゲームを家族で遊ぶ方法については以下の記事にまとめてますのでよろしければ参考にしてみてくださいね。 家族でモンスターハンターライズDL版のオンラインプレーを楽しむ方法