• 企业级GIT分支管控方案


    0. 引言

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

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

    1. 权限等级

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

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

    2. 分支管理

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

    • master分支

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

    • tag标签

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

    • develop分支

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

    • feature分支

    1、功能开发分支,需要开发新功能时,每个开发者以develop分支为基础,从dev分支拉取代码,并创建新的feature分支,比如开发者ben,那么就拉取并创建新的分支feature-ben
    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分支管控就到此结束了,企业生产中要把控好安全生产,就要严格控制好分支权限,开发时定期更新,减少冲突

  • 相关阅读:
    抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。抖音矩阵系统。
    Web3.0时代的身份与信任
    bootstrap-datepicker控件的使用及修改位置错误问题
    更有仪式感的收纳工具,让生活有条有理,精臣B21智能标签机上手
    C语言--每日五道选择题--Day20
    mysql5.7数据库安装及性能测试
    SpringMvc视图解析器
    如此狂妄,自称高性能队列的Disruptor有啥来头?
    大数据常见面试题:1
    内网信息收集
  • 原文地址:https://blog.csdn.net/qq_24950043/article/details/126190740