6.5 KiB
Соглашение о коммитах
Расширенное соглашение, основанное на "Соглашении о коммитах" v1.0.0.
Текущая редакция документа: 2025-07-30.
Главное
-
Сообщения коммитов должны быть следующей структуры:
<тип>(<необязательный контекст>): <краткое описание> <необязательное тело> <необязательная(ые) сноска(и)> -
Первая строка сообщения коммита ("краткое описание") не должна превышать 72 символов
Тип коммита
Стандартный набор типов, предлагаемый настоящим соглашением.
| Тип | Назначение |
|---|---|
| build | изменения влияющие на сборку проекта |
| docs | изменения влияющие на документацию |
| add | изменения добавляющие новый функционал или другие особенности |
| tweak | изменения влияющие на существующий функционал или на другие особенности |
| fix | изменения исправляющие какие-либо ошибки |
| remove | изменения удаляющее существующий функционал или другие особенности |
| revert | изменения откатывающие изменения другого коммита |
| perf | изменения направленные на улучшение производительности (performance) |
| refac | изменения НЕ исправляющие ошибки, НЕ добавляющие нового функционала или особенностей и НЕ изменяющие существующей логики функционала |
| style | изменения влияющие только на внешний вид кода или документа; форматирование |
| test | изменения влияющие на тестирование |
Breaking change
Коммит заканчивающийся восклицательным знаком ! после типа или контекста означает, что в коммите введены
изменения, которые ломают обратную совместимость.
Примеры:
refac!: полная реструктуризация проекта
remove(api)!: поддержка API 1.0
Merge commit
Единственное исключение из общего формата сообщений. Оформляется так, как это делает Git или IDE.
Контекст коммита
Стандартный набор контекстов, предлагаемый настоящим соглашением.
| Контекст | Описание |
|---|---|
| git | изменения влияющие на настройки репозитория (Git) |
| ide | изменения влияющие на настройки IDE |
Описание коммита
Описание коммита должно быть кратким и записано в повелительном наклонении. Так же следует избегать начинать краткое описание коммита со слов "добавлено", "исправлено" и другие, т.к. они уже указаны в типе коммита.
Рекомендуется формировать краткое описание таким образом, чтобы им можно было закончить фразу "Если этот коммит применить, то будет ..."
Примеры
Добавление нового функционала
add: авторизация пользователя
"Если этот коммит применить, то будет ..."
"... добавлена ..."
"... авторизация пользователя"
Рефакторинг, ломающий обратную совместимость
refac!: полная реструктуризация проекта
"Если этот коммит применить, то будет ..."
"... полная реструктуризация проекта"
Поправлен .gitignore
add(git): игнорирование файлов VSCode
"Если этот коммит применить, то будет ..."
"... добавлено ..."
"... игнорирование файлов VSCode"
Изменения в системе сборки проекта
build: задействован Github Actions
"Если этот коммит применить, то будет ..."
"... задействован Github Actions"
Удаление поддержки старого API
remove(api)!: поддержка API 1.0
"Если этот коммит применить, то будет ..."
"... удалена ..."
"... поддержка API 1.0"