Files
specification/CONVENTIONAL_COMMITS.MD

6.5 KiB
Raw Permalink Blame History

Соглашение о коммитах

Расширенное соглашение, основанное на "Соглашении о коммитах" 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"