Однажды в нашем уютном чате codechat
в Mattermost появилось следующее сообщение:
Суть в том, что не всегда удобно смотреть на номер задачи в гитлоге, чтобы понять, что это всё значит. Особенно, когда по одной задаче создаётся несколько коммитов с названиями типа:
* c946832 2023-09-26 smirnov BEST-123
* c946832 2023-09-25 smirnov BEST-123 WIP
* c946832 2023-09-24 smirnov BEST-123 WIP
* c946832 2023-09-23 smirnov BEST-123 WIP
Работать с этим и ревьювить очень неудобно.
Поэтому к номеру задачи лучше добавлять небольшое описание.
* 081fbe5 2023-09-26 smirnov FITLAR-225 feat(api): added endpoint for get main page content
* fdaf444 2023-09-26 smirnov FITLAR-225 feat(nova): added main page settings in admin panel
Так уже лучше.
Наше соглашение
- fix - Исправления багов.
- feat - Различные фичи и просто задачи.
- build - docker-compose и dockerfile или конфиги для кубера.
- chore - Используется не часто, например,
chore: drop trash
. Такой коммит содержит только удаление мёртвого кода. - ci - gitlab-ci
- docs - swagger или readme и любая другая документация по проекту.
- style - Это отдельные коммиты на запуски различных линтеров и анализаторов.
- refactor - Коммит не содержит никаких изменений функциональности, только рефакторинг уже существующей.
- perf - Выкидываем, используем refactor. Но фронтам можно.
- test - Догадайся.
Данные обозначения ДОЛЖНЫ быть только строчными буквами. Никаких Feat
или FIX
и т.д. Также их нельзя совмещать, например, feat+refactor
.
ВАЖНО! Данное соглашение не отменяет необходимость указания задачи в названии коммита. И номер задачи должен быть первым.
Насчёт контекстов (это то, что мы можем указывать в скобках, например, feat(nova) или fix(api)), здесь всё может быть довольно вариативно от проекта к проекту, поэтому строгих правил здесь нет. Главное — выбрать на своём проекте набор этих самых правил для контекстов и соблюдать их.