项目经验 GIT分支管理

现在到网上搜GIT关键字,结果往往是GIT命令大全。命令都会,但是提交代码时往往该出问题的时候还是会出问题。本文将结合我的经验,提出一些GIT分支的管理办法,希望对大家有些许帮助。

如果工程项目不分环境(正式,灰度,测试,开发),或者开发人员在三人以下,Windows用户请点击右上角,Mac用户请点击左上角。

准备工作

创建

我们按照一个普通的工程来进行初始化,创建若干分支:

PRO,Production environment,正式服

UAT,User Acceptance Test environment,灰度

FAT,Feature Acceptance Test environment,测试

DEV,Development environment,开发

分支作用顾名思义,不再展开。

分支保护

以gitlab为例,创建分支保护规则:

Settings -> Repository -> Protected Branches,选择PRO(Master)分支,指定Allowed to merge为TL(技术领导),Allowed to push为No one,或者TL。

那为什么不允许push PRO分支呢?

在多人开发项目中,merge和push是最容易覆盖别人代码的操作。PRO分支只允许储存线上运行的代码。如果开放了push,merge权限,那谁都可以向这个分支提代码了,这其实是很危险的!毕竟系统运行中最大的bug是人。

收归merge,push权限还有一个重要作用,让TL充分了解工作进度,顺便view代码。

开发分支命名

这是我在实践中践行的约定,大家可以参考一下:

自己的开发分支命名规则:开发者名工程名模块名

例:zhaomm_project_name_user_module

分支管理

理想的开发流程
1.png

其中,UTA -> PRO这一步,由开发人员在gitlab上发起merge request,由TL从UAT合并到PRO,上线后,开发人员可删除自己的开发分支。

当然啦,理想是美好的,现实是骨感的。来看看以下一些特殊情况怎么来处理:

多功能并行开发

有部分代码不会在下一次发布到正式服。

2.png

由于要发布的和提前开发的分支共用了FAT环境,所以FAT就不能直接合并到UAT了。

测试通过后,要发布的分支直接合并到UAT,最后再合并到PRO。

提前开发的分支,需要在上线后,合并PRO的代码。

随着容器技术的发展,现在环境和代码部署也越发简单,如果公司有能力的话,完全可以为每一个分支创建一个虚拟环境。但需要注意,每次上线后,都需要将PRO代码合并到接下来的开发分支中去。

正式服bug修复重上线

有时候,已经上线的代码需要紧急修改。

3.png

一般这种情况比较紧急,代码写好后,直接合并到FAT,交给测试。

测试通过后,直接把bug修复分支合并到UAT,避免FAT不上线的代码被合并到PRO。

上线后,将PRO代码合并到正常的开发分支中去。

最后

说了这么多,其本质就是解决,哪些代码要发布,哪些代码不发布的问题。

希望本文能对你有所启发。谢谢。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 13,585评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 9,750评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,811评论 2 7