master
日常开发不使用,只用于同步代码。
develop
开发使用的主要分支。
feature/xxx
feature 分支从 develop 分支拉出,用于功能需求开发。实际命名时,可以根据需求版本号命名,也可以根据功能命名。
以版本号命名的 feature/1.0.0 分支,应当作为当前版本的主要分支,其他 feature 分支应该由此拉出,也应该回到此分支。
版本完成后,通过 --squash
合到 develop 分支,并删除该 feature 分支。
哪些情况需要使用 feature 分支:
- 尚不明确上线时间的功能,先使用 feature 分支进行代码同步保存。
- 多个新功能并行,又互不依赖,则各自使用 feature 分支进行开发。比如:feature/editor, feature/vm
- 多个版本并行,则各自使用 feature 分支进行开发。比如:feature/4.1.0, feature/4.2.0
release/xxx
release 分支可以从 develop 分支拉出,也可以从主要版本分支 feature/1.0.0 拉出。
当从 develop 分支拉出时,上线完成后,又合回 develop 分支,release 分支保留。(需要注意被 develop 代码影响稳定性)
当从 feature/1.0.0 分支拉出时,同步删除 feature/1.0.0 分支,之后以此 release 分支为版本的主要分支。
新特性绝不允许再合入 release 分支,而要合入 develop 分支,等待下一个版本。
- 经过测试验证+上线评审,确定可上线,则从 feature 拉出 release 分支。比如:release/1.0.0
hotfix/xxx
一般来说,线上发现的问题,我们需要进行评审,优先放入下个版本处理。如果很严重,必须在当前版本修复,则仍然可以在release分支进行处理,并不一定需要hotfix分支。