Conventional Commits — это соглашение о том, как оформлять сообщения коммитов в Git. Его цель простая: сделать историю изменений понятной и полезной не только для разработчиков, но и для CI/CD, changelog-генераторов и систем версионирования.
Базовый формат такой:
type(scope): short description
Примеры:
feat(auth): add OAuth loginfix(api): handle timeout errordocs(readme): update installation guiderefactor(core): simplify cache logic
Зачем нужен Conventional Commits
- Понятная история Git — по коммиту сразу видно, что изменилось
- Автоматизация релизов — удобно для semantic versioning
- Генерация changelog — список изменений можно собирать автоматически
- Упрощение code review — меньше хаоса в истории проекта
- Единый стандарт в команде — особенно важно в больших репозиториях
Основные типы коммитов
feat— новая функциональностьfix— исправление багаdocs— изменения в документацииstyle— форматирование, пробелы, без логикиrefactor— переработка кода без изменения поведенияtest— добавление или изменение тестовchore— служебные задачи: зависимости, конфиги, сборкаbuild— изменения, влияющие на сборкуci— изменения в CI/CD
Как это связано с versioning
Стандарт хорошо работает с Semantic Versioning:
fix→ PATCHfeat→ MINORBREAKING CHANGE→ MAJOR 🚨
Пример:
feat(api): change user response format
Если изменение ломает обратную совместимость, это указывают явно:
feat(api)!: remove v1 endpoints
или в теле коммита:
BREAKING CHANGE: v1 API removed
Практические правила
- Пишите кратко и по делу
- Используйте английский или один язык на весь проект
- Не смешивайте несколько изменений в один коммит
scopeуказывайте, если он реально помогает- Формулируйте описание как действие:
add,fix,remove,update
Типичные ошибки
update code— слишком размытоfix— без пояснения, что именно исправлено- один коммит = и багфикс, и рефакторинг, и новые фичи
- отсутствие единого стандарта в команде ⚙️
Когда особенно полезно
- в командной разработке
- в open-source проектах
- при частых релизах
- если используются GitHub Actions, release-боты, semantic-release
Conventional Commits — это не просто “красивые сообщения”, а инструмент порядка, автоматизации и предсказуемых релизов. Один внедрённый стандарт часто экономит часы на разбор истории изменений и подготовке релизов ✅
👀 В конце дня особенно полезно держать под рукой хорошую подборку каналов про IT — с практикой, инструментами и актуальными подходами.