add: соглашение о коммитах

This commit is contained in:
2025-07-30 17:39:20 +03:00
parent cf01171a3d
commit dc78a354b1
2 changed files with 121 additions and 0 deletions

111
CONVENTIONAL_COMMITS.MD Normal file
View File

@@ -0,0 +1,111 @@
# Соглашение о коммитах
Расширенное соглашение, основанное на ["Соглашении о коммитах" v1.0.0](https://www.conventionalcommits.org/ru/v1.0.0/).
Текущая редакция документа: 2025-07-30.
## Главное
- Сообщения коммитов должны быть следующей структуры:
```
<тип>(<необязательный контекст>): <краткое описание>
<необязательное тело>
<необязательная(ые) сноска(и)>
```
- Первая строка сообщения коммита ("краткое описение") не должна превышать [72 символов](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
## Тип коммита
Стандартный набор типов, предлагаемый настоящим соглашением.
| Тип | Назначение |
|:-------|:-------------------------------------------------------------------------------------------------------------------------------------|
| 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"_

10
README.MD Normal file
View File

@@ -0,0 +1,10 @@
# Репозиторий "Соглашения о коммитах"
В этом репозитории хранится документ [о соглашении о коммитах](CONVENTIONAL_COMMITS.MD).
## Полезные статьи
- [Соглашение о коммитах v1.0.0](https://www.conventionalcommits.org/ru/v1.0.0/)
- [A Note About Git Commit Messages / tbaggery](https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
- [Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits / Хабр](https://habr.com/ru/companies/yandex/articles/431432/)