Git コミットメッセージ生成ツール
タイプ、スコープ、説明を含むConventional Commits形式のメッセージを生成します。
このツールについて
Git コミットメッセージジェネレーターは、Conventional Commits 仕様に従った明確で標準化されたコミットメッセージの作成を支援するツールです。このフォーマットはバージョン管理ログを読みやすくし、自動バージョン管理とチェンジログ生成を可能にします。また、チーム全体で一貫したメッセージ構造を確保することで、協働作業の効率性を大幅に向上させます。
ツールを使用するには、コミットタイプ(feat、fix、docs、style、refactor、test、chore、perf)を選択し、必要に応じてコードベースのどの部分が変更されたかを明確にするためのスコープを追加します。その後、変更内容の簡潔な説明を入力し、オプションでより詳細な本文や問題参照などのフッター情報を含めることができます。ツールは即座に正しくフォーマットされた Conventional Commit メッセージを生成し、バージョン管理システムに直接貼り付けることができます。
開発者、DevOps エンジニア、オープンソース維持管理者は、セマンティックバージョニングの自動化とプロフェッショナルなチェンジログ生成を実現する Conventional Commits の導入から最大の恩恵を受けます。プロジェクトによってはカスタムコミットスタイルを好むかもしれませんが、Conventional Commits 形式は CI/CD ツール、GitHub Actions、セマンティックリリースプラットフォームで広くサポートされており、モダンなソフトウェアワークフローに最適です。
よくある質問
コード実装
# Generate Conventional Commit messages programmatically
# No external library needed — plain string formatting
from dataclasses import dataclass, field
from typing import Optional
@dataclass
class CommitMessage:
type: str # feat | fix | docs | style | refactor | test | chore ...
description: str
scope: Optional[str] = None
body: Optional[str] = None
breaking_change: Optional[str] = None
footer: list[str] = field(default_factory=list)
def render(self) -> str:
# Header: type(scope)!: description
scope_str = f"({self.scope})" if self.scope else ""
bang = "!" if self.breaking_change else ""
header = f"{self.type}{scope_str}{bang}: {self.description}"
parts = [header]
if self.body:
parts.append("")
parts.append(self.body)
trailers = list(self.footer)
if self.breaking_change:
trailers.append(f"BREAKING CHANGE: {self.breaking_change}")
if trailers:
parts.append("")
parts.extend(trailers)
return "\n".join(parts)
# Example usage
msg = CommitMessage(
type="feat",
scope="auth",
description="add OAuth2 login support",
body="Implements Google and GitHub OAuth2 providers.\nUpdates the session schema.",
breaking_change="remove legacy /login endpoint",
footer=["Reviewed-by: Alice <alice@example.com>"],
)
print(msg.render())
# feat(auth)!: add OAuth2 login support
#
# Implements Google and GitHub OAuth2 providers.
# Updates the session schema.
#
# Reviewed-by: Alice <alice@example.com>
# BREAKING CHANGE: remove legacy /login endpointComments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.