【実践ガイド】エンジニアのためのGitコミットメッセージ・プルリクエストの書き方

目次

はじめに


チーム開発において、Gitのコミットメッセージやプルリクエスト(以下、PR)の質は、開発効率とコードの品質に大きな影響を与えます。適切に書かれたメッセージは、コードレビューの効率化やプロジェクトの保守性向上に直結します。
しかし、「コミットメッセージをどう書けばいいかわからない」「PRの説明が伝わらない」という悩みを抱えるエンジニアは少なくありません。本記事では、効果的なコミットメッセージとPRの作成方法について、具体例を交えながら解説します。

1.コミットメッセージの基本原則

1.1 良いコミットメッセージの特徴

効果的なコミットメッセージには、以下の3つの特徴があります:

1.簡潔で明確な内容

  • 変更内容が一目でわかる
  • 動詞で始まり、変更の種類が明確
  • 50文字以内を目安に簡潔に記述

2.一貫性のある書式

  • プレフィックスの統一(feat:, fix:, refactor: など)
  • 日本語・英語の統一
  • 時制の統一(現在形推奨)

3.レビュアーの視点を考慮

  • なぜその変更が必要かの理由を含める
  • 影響範囲が分かる情報を記載
  • 関連する課題番号やドキュメントへの参照
1.2 避けるべき悪いコミットメッセージの例
× 修正しました
× bugfix
× いろいろ変更

これらのメッセージは以下の問題があります:

  • あいまいで具体性がない
  • 何をどう変更したのかわからない
  • 後から振り返った時に意図が不明

代わりに、以下のように書きましょう:

○ feat: ユーザー登録時のバリデーション機能を追加
○ fix: ログイン後のリダイレクト処理のバグを修正
○ refactor: 注文処理のロジックをサービスクラスに移動

実践的なコミットメッセージの書き方

2.1 基本フォーマット

コミットメッセージは、以下の形式で書くことをお勧めします:

<type>: <subject>

<body>

<footer>
  • type: 変更の種類を示すプレフィックス
    • feat: 新機能
    • fix: バグ修正
    • docs: ドキュメントのみの変更
    • style: コードの意味に影響しない変更(空白、フォーマット等)
    • refactor: リファクタリング
    • test: テストコードの追加・修正
    • chore: ビルドプロセスやツールの変更
  • subject: 変更内容の要約(50文字以内)
  • body: 詳細な説明(必要な場合)
  • footer: 関連する課題番号等(必要な場合)

2.2 コミットメッセージテンプレート

GitHubでは、以下のようなテンプレートを.gitmessageとして保存し、活用できます:

# ==== Format ====
# type: Subject
#
# Commit body…
#
# ==== Types ====
# feat : 新機能
# fix : バグ修正
# docs : ドキュメントのみの変更
# style : コードの意味に影響しない変更
# refactor : リファクタリング
# test : テストコードの追加・修正
# chore : ビルドプロセスやツールの変更
#
# ==== Rules ====
# 1. 件名と本文を空行で区切る
# 2. 件名は50文字以内
# 3. 件名の終わりにピリオドを付けない
# 4. 件名は命令形で記述
# 5. 本文は72文字で改行
# 6. 変更の理由と変更内容を含める

3.プルリクエストの効果的な作成方法

3.1 PRの基本構成

効果的なPRは、以下の要素を含むべきです:

 1.タイトル
  • 変更の概要を端的に表現
  • プレフィックスを付ける([ADD], [FIX], [UPDATE]など)課題番号がある場合は含める

2.説明文

  • 変更の目的
  • 変更の概要
  • テスト方法
  • 注意事項や確認してほしいポイント
3.2 PRテンプレートの活用


GitHubでは、.github/pull_request_template.mdに以下のようなテンプレートを設定できます:
markdownCopy##

## 変更の目的
<!-- なぜこの変更が必要なのか -->

## 変更の概要
<!-- 何をどのように変更したのか -->

## テスト方法
<!-- どのようにテストしたか -->

## スクリーンショット
<!-- UIの変更がある場合 -->

## 関連する課題
<!-- 関連するIssue番号 -->

## チェックリスト
- [ ] テストを追加/更新しました
- [ ] ドキュメントを更新しました
- [ ] コードレビューの準備ができています

4.実践的なユースケース

4.1 機能追加時のメッセージ例
feat: ユーザープロフィール画像のアップロード機能を追加

-AWS S3を利用した画像アップロード機能を実装
-画像のリサイズ処理を追加
-アップロード時のバリデーションを実装

関連: #123
4.2 リファクタリング時のメッセージ例
refactor: 注文処理のビジネスロジックを専用サービスクラスに移動

-OrderControllerから複雑なロジックを分離
-OrderServiceクラスを新規作成
-テストの可読性と保守性を向上

パフォーマンス改善: 注文確定処理が約30%高速化

5.チーム開発におけるベストプラクティス

5.1 レビュー効率を上げるコツ

1.適切な粒度での分割

  • 1つのPRで1つの責務変更を原則とする
  • レビュー時間の目安は30分以内

2.関連情報の明記

  • 設計書やワイヤーフレームへのリンク
  • 技術的な決定の背景
  • 代替案の検討内容
5.2 コミュニケーションの効率化

1.レビュー依頼時のポイント

  • レビュー範囲を明確に
  • 確認してほしいポイントを具体的に
  • デプロイ手順の変更がある場合は明記

2.フィードバックの受け方

  • 建設的な議論を心がける
  • 修正内容は新しいコミットとして追加
  • レビューコメントには必ず返信

まとめ

効果的なコミットメッセージとPRの作成は、チーム開発の効率と品質を大きく左右します。以下のポイントを意識して実践してください:

変更内容を簡潔かつ明確に伝える
テンプレートを活用して一貫性を保つ
レビュアーの視点を常に意識する

これらの実践を通じて、チームメンバー全員が快適に開発を進められる環境を作りましょう。

参考資料

推奨ツール

目次
閉じる
エンジニア募集中!