This project uses Gitflow as follow:
- branch
main
: production ready code - branch
staging
: code that can be tested as production ready - branch
develop
: all code under development - branch
milestone-**
: code from a scrum story - branch
issue-**
: code for an individual task/issue
The described flow is illustrated as:
gitGraph
commit id: ""
commit id: ""
branch "staging"
branch "develop"
checkout develop
branch "milestone-42"
checkout milestone-42
branch "issue-123"
commit id: ""
commit id: ""
checkout milestone-42
branch "issue-456"
commit id: ""
commit id: ""
checkout milestone-42
merge issue-456
commit id: ""
merge issue-123
commit id: ""
checkout develop
merge milestone-42
commit id: ""
checkout staging
merge develop
commit id: ""
checkout main
merge staging
The commit message should be structured as follows:
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
build
: Changes that affect the build system or external dependencies (npm, nx)ci
: Changes to CI configuration files and scripts (github actions)chore
: Changes which doesn't change source code or tests e.g. changes to the build process, auxiliary tools, librariesdocs
: Documentation only changesfeat
: A new featurefix
: A bug fixperf
: A code change that improves performancerefactor
: A code change that neither fixes a bug nor adds a featurerevert
: Revert somethingstyle
: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)test
: Adding missing tests or correcting existing tests
feat: new feature
feat[#42]: new feature
feat!: breaking change
/feat[#42]!: rework endpoint
chore: update dependencies
The commit message will be validated with the regex:
^(build|ci|chore|docs|feat|fix|perf|refactor|revert|style|test)(\[(#\d+)\])?[!]?: .*$