Однажды в нашем уютном чате codechat в Mattermost появилось следующее сообщение:

Screenshot from 2023-09-28 12-19-54.png

Суть в том, что не всегда удобно смотреть на номер задачи в гитлоге, чтобы понять, что это всё значит. Особенно, когда по одной задаче создаётся несколько коммитов с названиями типа:

* 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

Так уже лучше.

Наше соглашение

  1. fix - Исправления багов.
  2. feat - Различные фичи и просто задачи.
  3. build - docker-compose и dockerfile или конфиги для кубера.
  4. chore - Используется не часто, например, chore: drop trash. Такой коммит содержит только удаление мёртвого кода.
  5. ci - gitlab-ci
  6. docs - swagger или readme и любая другая документация по проекту.
  7. style - Это отдельные коммиты на запуски различных линтеров и анализаторов.
  8. refactor - Коммит не содержит никаких изменений функциональности, только рефакторинг уже существующей.
  9. perf - Выкидываем, используем refactor. Но фронтам можно.
  10. test - Догадайся.

Данные обозначения ДОЛЖНЫ быть только строчными буквами. Никаких Feat или FIX и т.д. Также их нельзя совмещать, например, feat+refactor.

ВАЖНО! Данное соглашение не отменяет необходимость указания задачи в названии коммита. И номер задачи должен быть первым.

Насчёт контекстов (это то, что мы можем указывать в скобках, например, feat(nova) или fix(api)), здесь всё может быть довольно вариативно от проекта к проекту, поэтому строгих правил здесь нет. Главное — выбрать на своём проекте набор этих самых правил для контекстов и соблюдать их.

Источник