Генератор сообщений Git Commit
Генерирует сообщения в формате 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.