Master branch: only contain complete history of project, and only include abridged version
Develop branch: cloned from Master branch, and served as develop process, and merge other feature branches
Feature branch: cloned from Develop branch, never directly interacted with master branch. And serve as developing new features for the project, and after finished coding, this branch will be merged to develop branch
Release branch: cloned from develop branch, and served as new feature polishing before releasing the official version. After finished, it should be merged to both master branch and develop branch
Hotfix branch: cloned from master branch, and served as fixing bug in the official versions. After finished, it should be merged to both master branch and develop branch