Similar to GitFlow and OneFlow, SwatFlow follows the Feature Branch Workflow, which entails doing any active development (new features, improvements, bugfixes, ...) on separate, independent 'feature/' branches.
Feature branches are created from develop and allow developers to work on their tasks, independent of one another.
Once the feature has been finished and has been approved by QA, a Pull-Request should be done to merge it into develop.
After the merge, the feature branch should be deleted as the branch is relevant during the development process, it is a short-lived branch.


To improve the model even further, the following actions are recommended:

With these improvements, the diagram above will look like this:

It can be seen that now, by rebasing and squashing, the history is considerably cleaner.

 

git fetch --tags --force
git checkout -b <FEATURE> <SOURCE>
git push origin <FEATURE>
------------
<FEATURE> - feature branch that will be created (feature/...)
<SOURCE>  -	source branch/tag of feature branch (origin/develop, origin/lts/x, origin/lts/x.y, origin/release/x.y.z, x.y)
git fetch
git checkout <TARGET>
git pull
git merge --squash <FEATURE>
git push origin <TARGET>
------------
<FEATURE> - feature branch that will be closed (origin/feature/...)
<TARGET> - source of feature branch (develop, lts/x, lts/x.y, release/x.y.z, hotfix/x.y.z)