首页 > 其他分享 >【Git】代码权限&分支管理

【Git】代码权限&分支管理

时间:2023-03-06 22:25:15浏览次数:35  
标签:Git 代码 合并 dev merge git test 权限 分支

以Gitlab代码托管平台说明,也是目前应用最为广泛的企业搭建私服的选择。

1.  权限管理

[项目] 访问权限有3种::Private、Internal、Public
    Private:只有组成员才能看到
    Internal:只要登录的用户就能看到
    Public:所有人都能看到

[项目成员] 有五种权限及其适用对象:Guest、Reporter、Developer、Maintainer、Owner
    Guest:可以创建issue、发表评论,不能读写项目 【游客】
    Reporter:可以克隆代码,不能提交 【QA,PM】
    Developer:开发者可以克隆代码,开发,提交,push 【RD】
    Maintainer:管理员可以创建项目,添加tag,保护分支,添加项目成员 【RD组长】
    Owner:最高权限,管理组成员,删除项目,迁移项目 【研发负责人】


2.  分支管理

   2.1 基础概念:

版本冲突:合并分支时,当Git发现同一个文件中的同一块数据在两边的提交历史中都有变更,它将无法自动对其进行合并,产生冲突,需要人为介入修改,再合并。

# On branch master
一条合并命令:git merge featureA
两种合并方式:当执行merge命令时,git合并算法会根据当前分支(master)的最后一次commit与“特性分支”(featureA)的最后一次commit的情况,来决定合并方式是 “快进式合并” 还是 “递归三路合并”。

快进式合并:代码分支情况如下,默认合并方式为快进式合并,只是将master分支的HEAD指针右移,不会创建新的merge记录。

        

      缺点:若版本直接回滚,只会回退到featureA的上一次commit节点,原master分支上可能仍遗留featureA的代码,回退不干净。

递归三路合并:代码分支情况如下,合并方式为三路合并,此时merge算法会递归向前找到两个分支的共同“祖先”节点,判断各自文件修改点作为合并内容,若无代码冲突均会自动合并完成, 产生新的merge记录。

        

 

[所以推荐] 使用参数 “--no -ff”
git merge featureA --no -ff  #禁止快进式合并称为普通合并,各种请款下总会创建一个merge记录,方便追溯
               若版本直接回退,直接回退到原始master指针节点。

 

     2.2 研发分支过程管理

    • 主干分支为master,dev-test为开发分支,test为测试分支,pre为预发分支, release为上线分支

    • 每个一个需求为一个特性分支,命名为feature-XXX

    • 特性分支开发过程中外部联调需要时合并至dev-test

    • 特性分支开发完成后合并至test,提交测试

    • 测试完成后合并至pre,进行预发测试

    • 预发测试完成后合并至上线分支release-{date}, release-{date}由最新master派生

    • 如果在测试期间出现BUG需要在feature分支修复,并合并至集成分支(dev-test, test, pre).

      • dev-test期间合并dev-test

      • test期间合并至dev-test, test

      • pre期间合并至dev-test, test, pre

      • release期间合并至dev-test, test, pre, release

    • 线上出现Bug需要修复时等同一个需求走feature分支开发流程

  2.3 常见分支问题

    • 团队中新人可能是对Git不熟悉也可能是合并到集成分支 dev-test, test时冲突比较多想把dev-test,test代码合并到本地来解决,从而把别人开发功能的代码合并到自己的分支,上线时就把别人分支(不是本次上线的功能)上到正式环境了,导致线上事故。

      git checkout feature-xxx
      git merge test
    • 在开发过程中Bug修复时一般需要在自己的特性分支修改代码,修改完成后再依次合并到dev-test, test, pre让测试验证是否修复完成,但有时图方便或是时间问题就直接合并到pre让测试验证, 这样测试环境上就带有bug。然后就有一种常见的情况,在测试环境回归功能又发现了此Bug,开发就纳闷修复过了为何还有,其实就代码没有合并。

      git checkout feature-xxx
      # fix bug ..
      git checkout pre && git pull
      git merge feature-xxx
      # 没有合并至dev-test, test

 

出处:https://www.cnblogs.com/wang-technology/p/17184261.html

标签:Git,代码,合并,dev,merge,git,test,权限,分支
From: https://www.cnblogs.com/mq0036/p/17185726.html

相关文章

  • jenkins学习笔记之八:jenkins认证集成gitlab
    1.gitlab创建新应用2.jenkins安装gitlab插件3.插件安装完成后全局安全配置中使用并配置gitlab认证4.注销重新登录后自动使用gitlab当前登录账号登录jenkins必须和......
  • Github-Actions使用release-please实现自动发版
    ​releaseplease​是一个来自于Google​的自动发版工具,基于GithubActions可实现全自动发版。官网:https://github.com/googleapis/release-please上手在项目根目......
  • 代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节
    24.两两交换链表中的节点/***Definitionforsingly-linkedlist.*structListNode{*intval;*ListNode*next;*ListNode():val(0),nex......
  • 如何将抽象算法写成代码?(小技巧)
    画出算法的演示图,展现算法对某个实例详细的执行过程,可以很清晰地把算法写下来。注意以下的几点:实例的规模应该尽可能小,便于人工分析算法的执行过程;实例应该尽可能包含......
  • 解决python已安装requests,代码报错No module named 'requests'
    问题:python已安装requests,引包时报错Import"requests"couldnotberesolvedfromsourcePylancereportMissingModuleSource运行代码,报错:Nomodulenamed'requests'......
  • 统计后端项目代码的总行数
    统计后端项目代码的总行数 统计后端项目代码的总行数,可以有三种方式:GitBash命令行页面中使用命令统计、使用VSCode中的插件统计或者IntelliJIDEA中的插件统计......
  • 代码关键字,类名命名规则
    一、驼峰命名法:近年来越来越流行。驼峰命名法,正如它的名称所表示的那样,指的是混合使用大小写字母来构成标识符的名字。其中第一个单词首字母小写,余下的单词首字母大写。例......
  • 写 Python 代码不可不知的函数式编程技术
    把函数作为对象由于其他数据类型(如string、list和int)都是对象,那么函数也是Python中的对象。我们来看示例函数foo,它将自己的名称打印出来:deffoo():print("foo......
  • 统计前端项目代码总行数
    统计前端项目代码的总行数 统计前端项目代码的总行数,可以有两种方式:GitBash命令行页面中使用命令统计 或着使用用VSCode中的插件统计。 方式一、使用命令1......
  • 代码大全_V2(1,2章笔记)
    译序这本书讲什么代码大全原名叫codecomplete,它是什么,又不是什么?不是IDE中的代码自动补全功能不是软件源代码“大全”是“编码完成”的意思,是一个软件项目开发......