add: соглашение о коммитах
This commit is contained in:
111
CONVENTIONAL_COMMITS.MD
Normal file
111
CONVENTIONAL_COMMITS.MD
Normal 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
10
README.MD
Normal 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/)
|
||||||
|
|
||||||
Reference in New Issue
Block a user