Long-Lived Branches main, develop. Always keep "master" for lastest version.
Short-Lived Branches hotfix, feature, release
Get code from "develop"
Create "feature/newfeature"
Merge back to "develop"
Delete "feature/newfeature"
Create "release/v1.0.0" from "develop"
After finalizing, merge into both "master", "develop"
Add tag (v1.0.0) for master release
Create "hotfix/v1.0.1" from "master"
After fixing, merge into both "master", "develop"
Add tag (v1.0.1) for master release
Delete "hotfix/v1.0.1"
Don't create "release" branch
CI pipeline
Get from dev branch and create artifact
CD pipelines
Get CI artifact;
Push to Test and uat environment
Push to Live
Run scenario 2 for release