流程图
分支类型
- master主分之(生产环境分支),确保任何时刻该分之上的代码都是可发布的稳定的,不允许直接提交代码到该分支。为实现更严格的控制可以添加权限,只有主程序员才可操作该分支,普通开发员无权限
- develop开发分支,该分支上的代码是开发完成且经过测试(自测)的代码,在多人协作开发的场景下不建议直接在该分支上提交代码应该配合功能分支、预发布分支和补丁分支来进行代码的合并·
- feature/FEATURE,NAME 功能分支.
- release/NSEMATICVERSION 预发布分支
- hotfix/HOTFIX NAME 补丁分支
- vMAJORMINOR.PATCH 版本标签
分支说明
分支类型 | 定义 | 作用 | 合并关系 | 建立时机 | 初始代码来源 |
---|---|---|---|---|---|
master | 主分支 | 记录每一个正式发布版本,TAG所在分支 | 允许来自release和hotfix分支的合并 | 仓库初始化 | 仓库初始化 |
develop | 开发分支 | 保持最新的经过自测的代码 | 允许来自feature、release和hotfix分支的合并 | master创建完成后 | master |
release | 预发布分支 | 表示预发布在测试OA环境的分支,待测试人员进行测试 | 不允许来自任何分支的合并 | develop上代码满足发布要求 | 推荐使用develop上最新的commit |
feature | 功能分支 | 开发独立的功能需求 | 不允许来自任何分支的合并 | 有新功能需求时 | 推荐使用develop上最新的commit |
hotfix | 补丁分支 | 修复已发布版本的Bug | 不允许来自任何分支的合并 | 已发布版本出现BUG时 | master(或master上的TAG) |
Tips
- 远程仓库存在两个固定的分支
master
和develop
,其他相关分支视情况而定在大部分情况下不会将功能分支、补丁分支和预发布分支上传到远程仓库 - 多人协作团队建议不直接在
develop
上提交代码 - 单人开发维护的项目可以适当的进行精简
- 使用命令行工具时使用
git merge --no-ff
进行分支合并 - 如果需要同步最新的代码可以使用git rebase来代替
git merge