Under this branch, we work on new features.
For each feature, we create a feature branch.
Each feature branch is responsible for a single feature.
Under each feature branch, we are freely to create sub branch as much s we like. These branches are treat as the experiments on specific feature.
For examples, given a feature requirement, there could be more than one way to solve the problem. And sometimes we don’t know which one is better until we do some exploring. Creating branches allows us to explore the code into two, or several, very different directions, without each code conflicting with each other.