git 多人协同工作流
分支说明
-
master/main 保存最新版本且已发布的分支
-
develop 集成开发中的功能的分支
- develop 分支保存的是最新的未发布版本
- 当devlop分支的代码验证可发布之后,申请合并到master
-
feature/* 当前正在开发的分支,对工作任务模块简要清晰命名
- 新的feat分支从develop检出
- 当需要开发不同功能的时候,应该分别从develop检出,防⽌两个功能特性上的⼲扰
- 当功能开发完毕并验证通过后,请求合并到 develop 分⽀,对整个功能进⾏验证
-
hotfix/* 专⻔⽤于线上问题修复的分⽀,对修复工作简要清晰命名
- 线上版本出现问题时,基于master检出到新的fix/* 分支
- 在此分支进行修复工作并验证
- 验证可发布后合并至master,develop
- 删除hotfix/*分支
工作流
-
开发者接到新需求,从 develop 分⽀检出到⼀个新的feature 分⽀
-
在本地feature进行开发,提交代码⾄远端 feature 分⽀
-
完成feature功能开发,有以下两种选择
- 如果远端的develop是一个受保护的分支,那么应该将feature代码在远端申请合并
- 如果远端的develop不受保护,那么可以选择将feature分支合并至本地develop,然后直接推送到远端develop
-
在 develop 分⽀进⾏集成验证,集成验证完毕,feature 分⽀应被删除
-
当 develop 分⽀是⼀个成熟的发布版本时,合并⼊ master 发布
注意事项
- 主分支分为master或main,叫法不同只是git版本的问题。
- 一般情况下,远端的主分支都是受保护的默认分支,所以合并至master时应当在远端仓库申请merge request,并由管理员在远端仓库完成合并
- 在做检出新分支操作时,应始终确保本地master或本地develop与远端仓库代码对齐
- 在master 或 develop的进行git push操作时,应先git pull后(若有冲突,应解决冲突后)再进行push