Show Menu
Cheatography

Commit Messages Cheat Sheet by

Общие правила по написанию коммитов. На основе Conventional Commits (https://www.conventionalcommits.org/)

Specif­­ic­ation

Специф­икация расширяет Conven­tional Commits. Некоторые правила из базовой специф­икации опущены в этом списке для удобства чтения, но также являются актуал­ьными. Слова «MUST», «MUST NOT», «REQUI­RED», «SHALL», «MAY» и «OPTIONAL» в данном документе должны интерп­рет­иро­ваться как в RFC 2119.
Коммиты должны (MUST) начинатся с типа, который является сущест­вит­ельным: feat, fix и т. д. За ним следует необяз­ате­льный (OPTIONAL) контекст, необяз­ате­льный (OPTIONAL) воскли­цат­ельный знак (!) и обязат­ельные (REQUIRED) двоеточие (
:
) и пробел (
 
).
Коммит должен (MUST) содержать один из указанных типов.
Контекст может (MAY) следовать после типа. Контекст должен (MUST) быть сущест­вит­ельным, заключ­ённым в круглые скобки, описыв­ающий часть кодовой базы, которую затронул коммит. Например, fix(pa­rser).
Описание должно (MUST) следовать сразу за двоеточием (
:
) и пробелом (
 
) после типа или контекста. Описание предст­авляет собой краткое изложение изменений кода. Например,
fix: array parsing issue when multiple spaces were contained in string
.
Описание должно быть (MUST) не более 72 символов включая тип и контекст (желат­ельно менее 50 символов).
Тело коммита может (MAY) следовать после короткого описания, добавляя дополн­ите­льную контек­стную информацию об изменениях в коде. Тело должно (MUST) отделяться от описания одной пустой строкой.
Тело коммита имеет произв­ольную форму и может (MAY) состоять из любого количества абзацев, раздел­ённых новой строкой, каждая строка не должна быть более 72 символов.
Критич­еские изменения должны (MUST) быть указаны в типе, контесте или сноске коммита.
Если BREAKING CHANGE включено в сноску, то оно должно (MUST) состоять из прописного текста BREAKING CHANGE, за которым следует двоеточие (:), пробел ( ) и описание. Например, BREAKING CHANGE: enviro­nment variables now take precedence over config files.
Если критич­еские изменения находятся в типе или контексте, то они должны (MUST) быть обозначены воскли­цат­ельным знаком (!), непоср­едс­твенно перед двоеточием (:). Если исполь­зуется воскли­цат­ельный знак (!), то BREAKING CHANGE может (MAY) быть опущен в сноске, а описание коммита должно (SHALL) исполь­зов­аться для описания критич­еского изменения.
Коммит должен (MUST) быть написан в нижнем регистре, кроме акронимов и слов относя­щихся к коду (названия классов и т.п.).
В последней строке могут (MAY) содерж­аться ссылки на задачи в гитлабе, если таких задач несколько, то они должны (MUST) быть перечи­слены через запятую, например:
ref: exampl­epr­oje­ct/­com­mon­#211, exampl­epr­oje­ct/­web#2
.
 

Types

feat
Features
Добавление нового функци­онала
fix
Bug Fixes
Исправ­ление багов
style
Stylistic Changes
Стилис­тич­еское исправ­ление кода, которое не меняет его поведение (пробелы, точки с запятой, отступы и т.п.)
perf
Perfor­­mance Improv­­ements
Изменение кода, которое делается для улучшения его произв­оди­тел­ьности
refactor
Code Refact­­oring
Изменение кода, которое не вносит новый функционал и не исправляет баги
test
Tests
Добавление новых тестов или исправ­ление уже сущест­вующих
ci
Continuous Integr­­ations
Любые изменения связанные с CI/CD
docs
Docume­ntation
Все что касается докуме­нтации (в том числе внутри кода)
chore
Chores
Любые изменения не модифи­цир­ующие исходных код или тесты, например настройка линтеров
vendor
Depend­encies Changes
Обновление и изменение зависи­мостей
revert
Reverts
Возврат на предыдущий коммит
release
Release
Зарезе­рви­ровано под CI, исполь­зуется при обновлении версии и генерации changelog файла (не исполь­зовать вручную)
Данные типы соотве­тствуют соглашению Conven­tional Commits и являются вариацией их конфига.

Commit message structure

Сообщения коммитов должны быть следующей структуры:

<­t­yp­­e>­­[(o­­pt­ional scope)]: <de­­sc­r­i­pt­­ion­­>

 

[optional body]

 

ref: <gi­tla­b_i­ssu­e_r­efe­ren­ce>

Commit message examples

Коммит без развер­нутого описания:

chore(­ads): add admitad banner

 

ref: exampl­epr­oje­ct/­com­mon#211


Коммит с описанием и ссылкой на несколько задач:

refactor: change PHP version to 7.4

 

refactor to use PHP types not available in PHP 7.2

 

ref: exampl­epr­oje­ct/­com­mon­#211, exampl­epr­oje­ct/­web#2
 

Comments

No comments yet. Add yours below!

Add a Comment

Your Comment

Please enter your name.

    Please enter your email address

      Please enter your Comment.

          Related Cheat Sheets

          Git Cheat Sheet
          GIT - Everyday use Cheat Sheet