Git Commit Mesaj Oluşturucu
Tür, kapsam ve açıklamayla Conventional Commits formatında mesajlar oluşturur.
Bu araç hakkında
Git Commit Mesajı Oluşturucu, geliştiricilerin Conventional Commits spesifikasyonuna uygun açık ve standartlaştırılmış commit mesajları yazmasına yardımcı olur. Bu format, sürüm kontrol günlüklerini okunabilir kılar, otomatik sürüm yönetimi ve değişiklik günlüğü oluşturmayı sağlar ve proje genelinde tutarlı bir mesaj yapısı garantileyen ekip işbirliğini iyileştirir. Tek başına veya büyük bir ekipte çalışın, düzgün biçimlendirilmiş commit'ler bakım yapılabilirlik ve izlenebilirlik için gereklidir.
Aracı kullanmak için bir commit türü seçin (feat, fix, docs, style, refactor, test, chore veya perf), kod tabanının hangi bölümünün değiştiğini açıklamak için isteğe bağlı olarak bir kapsam ekleyin, değişikliğin kısa bir açıklamasını yazın ve isteğe bağlı olarak sorun referansları gibi daha fazla ayrıntı veya altbilgi bilgisi içeren bir gövde ekleyin. Araç, anında düzgün biçimlendirilmiş bir Conventional Commit mesajı oluşturur ve bunu doğrudan sürüm kontrol sisteminize kopyalayıp yapıştırabilitedir.
Geliştirici, DevOps mühendisleri ve açık kaynak maintainer'ları, anlamsal sürüm yönetimi otomasyonu ve profesyonel değişiklik günlüğü oluşturmaya imkan sağlayan Conventional Commits'i benimsemekten en fazla fayda sağlarlar. Bazı projeler özel commit stillerini tercih edebilse de, Conventional Commits formatı CI/CD araçları, GitHub Actions ve anlamsal yayın platformları tarafından yaygın olarak desteklenir ve modern yazılım iş akışları için idealdir.
Sıkça Sorulan Sorular
Kod Uygulaması
# 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.