Gitで変更を保存するとき、「何を書けばよいか分からず update や fix だけで済ませてしまう」と悩むことはありませんか。
ChatGPTは、変更内容を短く読みやすいコミットメッセージへ整える補助に使えます。ただし、コードを見せずに丸投げすると、実際には行っていない変更や確認作業まで補ってしまうことがあります。
この記事では、実際の差分から事実を拾い、後から読んでも目的が分かるコミットメッセージを作る方法を5ステップで解説します。Git自体が初めてなら、先にChatGPTをプログラミングへ活用する基本も確認してください。
結論:ChatGPTには「要約」だけを任せる
コミットメッセージで大切なのは、格好よい表現よりも事実との一致です。ChatGPTへ任せる範囲は、次のように分けると安全です。
- 人が行う:差分、変更理由、影響範囲、確認結果を確かめる
- ChatGPTが行う:与えられた事実を短く整理し、表現候補を出す
- 最後に人が行う:候補を差分と照らし、誤りや機密情報がないか確認する
Git公式の解説でも、ステージング領域を使って課題ごとに変更を分け、それぞれへ有用なメッセージを付ける考え方が示されています。AIを使っても「1コミット1目的」を崩さないことが出発点です。
SkillForge式「変更カード」を作る
ChatGPTへ入力する前に、次の4項目をメモします。これを本記事では「変更カード」と呼びます。

| 項目 | 書く内容 | 例 |
|---|---|---|
| 変更した事実 | 実際に変えたファイルや動作 | ログインフォームにパスワード表示切替を追加 |
| 変更した理由 | なぜ必要だったか | 入力ミスを減らすため |
| 影響範囲 | どこへ影響するか | ログイン画面のみ |
| 確認結果 | 実際に確認したこと | 表示・非表示の切替を手動確認 |
確認していない項目は「未確認」と書きます。空欄をChatGPTに推測させないことが重要です。
ChatGPTでコミットメッセージを作る5ステップ

1. リポジトリのルールを確認する
最初に、チームやリポジトリ固有のルールを確認します。CONTRIBUTING.md、README、過去のコミット履歴などに形式が決められている場合は、その規則が最優先です。
たとえば、次の違いがあります。
- 日本語か英語か
- 先頭へ feat や fix を付けるか
- 課題番号を含めるか
- 件名だけか、本文も付けるか
ルールが見つからない場合は、短い件名で「何が変わるか」が分かる形から始めれば十分です。
2. 差分を確認し、1つの目的に分ける
コミット前に git status と git diff --staged などで対象を確認します。機能追加と誤字修正のように目的の違う変更が混ざっているなら、別のコミットへ分けます。
AIへ大量の差分を丸ごと渡す前に、次も確認してください。
- APIキー、パスワード、個人情報が含まれていないか
- 生成ファイルや不要なログが混ざっていないか
- 本当にステージしたいファイルだけか
コードの安全性や品質も見直したい場合は、ChatGPTでコードレビューする方法が参考になります。
3. 変更カードを埋める
差分を見ながら、4項目を自分の言葉で埋めます。ここでは文章をきれいにする必要はありません。
変更した事実:ログイン画面にパスワード表示切替ボタンを追加 変更した理由:入力ミスを確認しやすくするため 影響範囲:LoginFormコンポーネント 確認結果:Chromeで表示と非表示の切替を確認
このカードが、ChatGPTの作る文面を事実に固定する材料になります。
4. ChatGPTに3案を作らせる
1案だけではなく、長さや表現の違う3案を依頼します。比較することで、最も実態に合う候補を選びやすくなります。
次のプロンプトをそのまま使えます。
あなたはGit初心者を支援する編集者です。以下の変更カードだけを根拠に、コミットメッセージの件名を3案作ってください。差分にない事実や確認結果を追加しないでください。件名は簡潔にし、「何が変わるか」が分かる表現にしてください。本文が必要な場合は、理由と確認結果を2〜3行で補足してください。チーム規約は「日本語、件名は50文字程度、Conventional Commitsは使用しない」です。変更カード:[ここに貼り付け]
チームがConventional Commitsを採用しているなら、その規約も明記します。採用していないのに形式だけを持ち込む必要はありません。
5. 実際の差分と照合して確定する
候補を選んだら、コミットする前に次を確認します。
- 書かれた変更がすべて差分に存在する
- 行っていないテストを「確認済み」と書いていない
- 変更理由が実際の目的と一致する
- チームの言語・形式・課題番号ルールに合う
- 機密情報や顧客名が残っていない
問題がなければコミットします。エラー対応と変更理由を整理したいときは、ChatGPTでエラーを切り分ける方法も併用できます。
通常形式とConventional Commitsの違い
通常のコミットメッセージにGit共通の絶対形式はありません。リポジトリの慣習を優先してください。
シンプルな日本語形式
ログイン画面にパスワード表示切替を追加
本文が必要なら、空行を挟んで理由や確認結果を補足します。
ログイン画面にパスワード表示切替を追加 入力ミスを確認しやすくするため。 Chromeで表示・非表示の切替を確認済み。
Conventional Commitsを採用している場合
Conventional Commitsは、人とツールが読み取りやすい履歴を作るための任意の規約です。公式仕様では、基本形を次のように定めています。
<type>[optional scope]: <description>
たとえば次のようになります。
feat(login): パスワード表示切替を追加
feat や fix の判定をAIへ任せ切らず、チームの定義と変更目的に照らして選びます。
悪い例を改善する
| 悪い例 | 問題 | 改善例 |
|---|---|---|
| update | 何を変えたか分からない | READMEにローカル起動手順を追加 |
| bug fix | 対象と結果が不明 | 空欄送信時の重複エラー表示を修正 |
| いろいろ修正 | 複数目的が混在している可能性 | 変更を目的別に分け、それぞれ具体化 |
| テスト完了 | 変更内容がなく、実施範囲も不明 | 検索結果の0件表示を修正し、3条件で確認 |
READMEそのものを整える場合は、ChatGPTでREADMEを書く方法で事実確認の流れを詳しく解説しています。
よくある失敗
差分を確認せずAI案を採用する
ChatGPTは自然な文章を作れても、実際の変更を自動的には知りません。必ず差分と照合します。
変更を1つのコミットへ詰め込む
複数目的が混ざると、短い文面では正確に説明できません。先に変更を分ける方が、AIへの指示も簡単になります。
コードやログを無加工で貼る
秘密鍵、APIキー、社内URL、個人情報を外部サービスへ入力しないでください。必要部分だけを抽出し、機密情報を除いてから使います。
規約を勝手に変更する
Conventional Commitsは便利ですが、全チームに必須ではありません。既存の履歴やCONTRIBUTING.mdと異なる場合は、個人判断で切り替えないようにします。
よくある質問
コミットメッセージは日本語でもよいですか?
リポジトリのルールに反しなければ問題ありません。共同開発では、既存履歴と同じ言語へ揃えると読みやすくなります。
件名だけで十分ですか?
小さく明確な変更なら件名だけでも理解できます。背景や判断理由がコードから分かりにくい場合は、本文へ「なぜ」を補足します。
差分をそのままChatGPTへ貼ってもよいですか?
公開可能なコードか、契約・社内規定上問題がないかを先に確認してください。迷う場合は差分を貼らず、変更カードだけで文面を整えます。
まとめ
ChatGPTでコミットメッセージを整えるときは、次の順で進めます。
- リポジトリのルールを確認する
- 差分を確認し、1コミット1目的に分ける
- 変更カードへ事実を整理する
- 事実だけを使って3案作らせる
- 差分と照合してから確定する
AIに変更内容を想像させるのではなく、人が確認した事実を読みやすく整えるために使うことが、正確で役立つ履歴を残す近道です。


コメント