1、什么是Feature Branch Workflow
Feature Branch Workflow 的核心理念是:master 分支用于部署,功能开发应该在专门的分支而非 master 分支上,任何推向 master 分支的 feature-branch 都应该经过代码审核。即,团队成员共用一个私有项目仓库进行管理协作,开发者在各自的 feature-branch 中进行开发,开发完成后通过提交 Merge Request 进行代码评审,通过代码评审后 merge 进入 master 分支(即可部署到生产环境)。
2、Gitlab对feature branch workflow的工作流程总结
https://docs.gitlab.com/ee/workflow/workflow.html
Clone project:
git clone git@example.com:project-name.git
Create branch with your feature:
git checkout -b $feature_name
Write code. Commit changes:
git commit -am "My feature is ready"
Push your branch to GitLab:
git push origin $feature_name
Review your code on commits page.
- Create a merge request.
- Your team lead will review the code & merge it to the main branch.
3、流程图和开发实践
开发流程图如下:
- [当前分支:master]
git pull
同步master到本地 - [当前分支:dev]
git merge master
合并master上最新的代码,保证dev分支代码最新 - [当前分支:dev]
git commit
开发完成后commit本地代码 - [当前分支:dev]
git push
推送到远程的dev分支 - 推送完成后终端上会有一个发起merge request的url,访问url进行merge request进行提交,也可以在gitlab页面上进行提交
- [在gitlab页面] 完成merge操作
注:图中把每次开发checkout一个feature分支固定成了dev分支,也可以每次开发切新分支,merge完成后删除分支
**
4、总结
- master分支用于部署不能开发
- 功能开发在非master分支
- 适用于只有一套线上环境或者版本
- 任何代码合并到master都应该经过审核codereview
- 比git flow思路简单
5、参考
https://blog.coding.net/blog/feature-branch-workflow
https://docs.gitlab.com/ee/workflow/workflow.html