Соглашение по именованию коммитов
Каждый коммит должен содержать в себе описание изменений, по которому должно быть четко понятно зачем и что было сделано.
Сам формат опционален и может быть разным на разных проектах в зависимости от используемых технологий и требований, однако рекомендуется, чтобы каждый коммит содержал в себе:
- тип изменений, который содержит коммит;
- область кода, в которой производились изменения;
- сообщение;
- описание, как правило пишется через пустую строку от заголовка коммита. Может содержать более подробное описание изменений, важное замечание, ссылку на задачу, к которой коммит относится.
Например, таким форматом могут быть:
feat(ruler): add inches as well as centimeters
;Feature/Ruler: add inches as well as centimeters
;[Feature] [Ruler] add inches as well as centimeters
.
Типы
Допустимые значения типов могут меняться от проекта к проекту. Основными типами являются:
feat
- новый функционал;fix
- исправление ошибок;docs
- изменения в документации;style
- форматирование кода и правки кодстайла;refactor
- изменения в коде, которые не влияют на поведение;test
- изменения в тестах;chore
- изменения в сборщике или зависимостях.
Область
Область действия должна показывать раздел кодовой базы, в котором проводились изменения. Один коммит должен затрагивать только одну область.
Если какое-то изменение затрагивает 2 области, то, вероятнее всего, это 2 разных изменения и стоит разбить его на 2 разных коммита. Например, вам понадобилось добавить в общий компонент (одна область) новое поведение, которое нужно будет использовать в каком-то другом модуле. Тогда это будет 2 разных коммита: добавление в общий компонент поведение и проброс новых данных из модуля в этот компонент, чтобы поведение работало.
Значение области так же может быть разным в зависимости от организации проекта. Областью могут быть:
- Название компонента, в котором проводились изменения;
- название модуля — для тех случаев, когда у проекта есть модули, а не плоская структура.
Сообщение и описание
Сообщение должно описывать что именно было изменено. Подробное описание может описывать:
- зачем были сделаны эти изменения;
- подробное описание изменения;
- какие отличия в поведении между старым и новым вариантом
Правила по написанию сообщения и описания:
- Только английский язык, никакого транслита;
- используйте повелительное наклонение. Сообщения в коммитах должны вписываться
в предложение
If applied, this commit will %your subject line here%
. Например,(If applied, this commit will) add new cool feature
; - первое слово с прописной буквы, не с заглавной;
- не ставьте точку на конце.