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

  1. Clone project:

    1. git clone git@example.com:project-name.git
  2. Create branch with your feature:

    1. git checkout -b $feature_name
  3. Write code. Commit changes:

    1. git commit -am "My feature is ready"
  4. Push your branch to GitLab:

    1. git push origin $feature_name
  5. Review your code on commits page.

  6. Create a merge request.
  7. Your team lead will review the code & merge it to the main branch.

3、流程图和开发实践

开发流程图如下:

image.png

  • [当前分支: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