多人协作开发,git要一人一个分支吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了多人协作开发,git要一人一个分支吗?相关的知识,希望对你有一定的参考价值。

什么是分布式?既然是分布式,没必要每人都有一个分支的吧,因为你拉到本地的仓库可以自由使用,建多少分支不行?而在服务器上,按功能化一两个分支即可,比如稳定代发放  master, 开发放 dev 分支等,git  使用过程中 merge rebase 这些操作很频繁的 参考技术A 不用把

企业中多分支多人协作的git工作流程

分支模型和权限

我们用的是master(生产),release(预生产),integration(测试),develop(开发) 分支模型

git平台:gitlab

分支权限

前端后端:拥有的的权限只有开发分支的合并
开发组长:拥有的的权限有开发测试预生产生产分支的合并

发布权限

前端后端:拥有的的权限只有开发环境的发布
开发组长:拥有的的权限只有开发环境测试环境的发布
测试:拥有的的权限只有测试环境预生产的发布
运维:拥有的的权限只有生产的发布

开发上线流程

1.需求评审
2.开发排期
3.开始开发
4.测试冒烟
5.冒烟通过提测,合代码到测试分支
6.测试测试,开发修bug
7.测试完成,发布预生产,合代码到预生产
8.预生产测试,修bug,修完的bug要走测试再走预生产
9.预生产产品验收,提交生产,合代码到生产,生产运营(客户)验收
10.结项

重点第三步开始(新需求开发):

1.开始开发要切换分支到release或者master

## 注意:如果release上有别人没发到生产的代码,就切换到master分支
git checkout release
## or
git checkout master

2.开发新需求先把 预发布/生产上最新代码拉下来

git pull

3.创建自己的独立分支并在这个分支上开发

git checkout -b 分支名
分支名要有命令规范,不要随便取,不然鬼才知道你这个分支是干嘛的
例如:业务或项目名缩写-版本-开发人姓名

## 例子
git checkout -b tfsc-2.7-hqg

4.开发完成提交代码

git add .
git commit -m'提交描述'
git push

提交描述怎么写?
新需求提交:feat:需求8296-新增购物车需求
bug修复:fix:bug12890-购物车按钮点不动

## 提交描述例子
git commit -m'fix:bug12890-购物车按钮点不动'

5.开发前后端开发环境联调
线上合并代码到develop分支,开发人员有权限,自己线上合并即可,然后jekins构建项目,结合你本地运行代码,你和后端就可以联调了(你本地调,后端看你发布到开发环境的代码构建后的地址)

就算你有权限自己合并开发分支,也禁止本地merge,所有的merge走线上(下面有指引)!

6.线上申请自己分支合并代码到integration(测试)分支

前面合到develop也是在这里合并!

7.冒烟测试(冒烟在开发环境冒烟)
叫测试在开发环境进行冒烟测试,根据测试的测试用例来测试,有问题及时修改,然后提交代码到自己分支,再线上合并到开发分支。
直到冒烟测试通过,就申请提测,将自己分支最新代码合并到测试分支,联系对应的测试人员构建测试。
8.测试环境测试
边测边修复bug,直到测试完成,测试说可以,再将代码发到预生产,这个作为前端一般是没有权限合并的,只能提交合并申请后由开发组长来完成,然后交测试发布预生产
9.预生产环境测试
也是边测试边修复bug,注意:这里修复的bug要重走测试,测试环境测过了,再发预生产,预生产环境测完了,产品测试,产品觉得ok了,就验收,开始合并到生产环境
9.产环境测试发布验收
生产环境发布需要提上线申请,打tag,然后交给运维发布上线,最后客户验收!
关于tag怎么打看下面:

1.打tag切换到master分支
2.git tag 查看所有tag

3.git tag tag名
4.git push origin tag名

5.打线上申请

Jenkins项目名称: tuns_web_pc
GIT仓库地址: http://192.168.2.20/front_end/tuns_web_pc.git
当前发布分支TAG/分支: 2.8.0
异常处理: 回滚至 2.7.8

以上是关于多人协作开发,git要一人一个分支吗?的主要内容,如果未能解决你的问题,请参考以下文章

Git 多人协作开发

企业中多分支多人协作的git工作流程

企业中多分支多人协作的git工作流程

企业中多分支多人协作的git工作流程

git 多人协作

git-多人协作