企业级GIT分支管控方案

647 阅读6分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第3天,点击查看活动详情

0. 引言

GIT如今被广泛应用于企业开发项目托管,随着我们项目规模的扩大, 开发人员的数量也逐渐扩增,呈现出不同的开发等级,而不同的等级,也需要不同的权限管控。

所以今天,我们来聊一聊,企业git的管控

1. 权限等级

首先我们需要明确项目开发中需要涉及的权限等级:

权限等级描述赋权角色
项目创建者项目创建者拥有项目的最高权限,包括删除项目、管理成员、设置权限,一般由开发组leader来创建项目开发组leader
项目管理员项目管理管理员除了删除项目和清空项目外,拥有其他的全部权限团队leader、运维管理人员
项目主开发者项目主开发者可以添加tag,管控分支、添加项目成员,核心开发人员可以赋予该权限,一般拥有master分支的管控权限核心开发人员
项目开发者项目开发者拥有项目代码拉取、开发、提交等权限,一般将权限赋予研发人员,但需要注意的是要针对分支做好把控,这点我们后面详细讲解研发人员
项目观察者项目观察者可以克隆代码,但是不能提交品质保证(QA)、产品经理(PM)
项目报告者项目报告者只能创建issue、评论,不能读写代码,但在企业内部开发中很少用到该权限,因为一般有问题都会提在禅道等管理平台上访客、测试

2. 分支管理

企业内部开发中,我们一般分成以下几种分支:

  • master分支

1、主分支,创建项目时即创建的分支,用于部署生产环境的分支,是所有分支的主干,与当前线上代码保持统一 2、由主开发人员、研发组leader管控、不允许其他开发在该分支上直接开发

  • tag标签

每次从master发布生产环境后,需要用tag标记一个版本,再master分支上的每个tag都对应历史的一个线上版本。方便后续追溯及复查代码

  • develop分支

1、开发分支,开发者各类开发功能的合并分支,即当前最新功能的分支。 2、开发人员会将自己开发的功能分支提交到dev分支上,由主开发人员来进行审核,通过后合并到dev分支上,一般测试环境就是从develop分支拉取代码 3、不允许开发者在该分支上直接开发

  • feature分支

1、功能开发分支,需要开发新功能时,每个开发者以develop分支为基础,从dev或master分支拉取代码,并创建新的feature分支,比如开发者ben,那么就拉取并创建新的分支feature-ben。 如果dev分支上有正在测试的代码,那么更加建议从master分支拉取feature分支

2、功能开发完成后,就提交到develop分支上,由主开发者审核合并,功能开发完成后需要删除feature分支,下次开发时再冲突拉取创建

3、但需要注意的是,有的功能开发周期可能比较长,或者与其他功能的冲突率比较高,那么就需要定期拉取代码,避免长时间不更新代码,再次提交时出现较多的代码冲突。即使出现冲突,也能少处理一些。

  • release分支

1、发布分支,feature分支合并到dev分支后,准备发布新版本时,再创建一个新的release分支,分支名可以以功能名命名,比如release-user,允许存在多个release分支。

2、预生产环境从release分支拉取代码发布,如果出现bug就从release分支拉取bugfix分支进行修复,测试成功后,release分支合并到dev分支和master分支,并且删除release分支

3、release分支很多没有预生产环境的公司会选择忽略该分支,直接提交到master分支进行发布,这里也由大家根据公司情况进行选择 4、不允许开发者在该分支上开发

  • bugfix分支

1、bug修复分支,也叫hotfix分支,正式发布之后会出现bug,这时需要开发者从master或者release分支拉取并创建一个bugfix分支,分支名可根据开发者名称来命名,比如bugfix-ben。 2、修复完成之后,合并到master或release分支上,并且删除bugfix分支

总结

根据以上描述,企业开发时,实际上长期存在的分支只有master和dev分支,其他分支都是多个且临时的

3. 常见操作

以下操作基于gitee演示,其他git服务端类似,大家可自行摸索

3.1 如何创建分支

1、点击分支,进入分支管理页面

在这里插入图片描述

2、点击新建分支

在这里插入图片描述

3、选择基于哪个分支创建,输入分支名称,点击提交

在这里插入图片描述

4、创建成功

在这里插入图片描述

3.2 如何设置分支权限

1、点击保护分支设置,点击新建规则

在这里插入图片描述

2、输入需要设置的分支名,支持通配符形式,比如release*

设置可推送代码成员、可合并提交成员,这里可设置角色或具体的开发人员

确认后点击保存

在这里插入图片描述

3.3 如何删除分支

1、点击分支

在这里插入图片描述

2、选择需要删除的分支,点击删除

在这里插入图片描述

3.4 如何给master分支打上tag标签

1、点击标签

在这里插入图片描述

2、点击新增标签

在这里插入图片描述

3、输入标签名称,一般以版本号命名;输入标签描述,一般是本次发布的功能名;选择从哪个分支发布,默认master

在这里插入图片描述

3.5 如何在IDEA中更新分支信息

1、点击更新项目

在这里插入图片描述

2、点击右下角的分支名,然后就可以看到我们刚刚创建的分支了

在这里插入图片描述

3、如果需要切换到新的分支,并拉取代码的话,点击分支名,点击checkout即可

在这里插入图片描述

4、看到右下角的分支名已经更换了,即表示切换成功

在这里插入图片描述

5、再次提交代码就会看到走的就是新分支了

在这里插入图片描述

总结

那么本期我们的git分支管控就到此结束了,企业生产中要把控好安全生产,就要严格控制好分支权限,开发时定期更新,减少冲突