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

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

时间:2023-03-06 16:11:12浏览次数:37  
标签: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

 

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

相关文章

  • .gitignore文件用法及如何配置
    .gitignore文件是在git提交的时候用来屏蔽某些你不想提交上去的文件。项目开发过程中,有时候不想把一些文件(如中间文件/编译文件等)提交到git上。这个时候就由.gitignore文......
  • git常用基本指令及用法含义
      工作原理:说明:workspace:工作区stagingarea:暂存区/缓存区localrepository:版本库或本地仓库remoterepository:远程仓库一个简单的操作gitinit-初始化仓......
  • idea操作gitee补充
    31.IDEA中使用GIT-远程仓库-创建与关联远程仓库gitee目标​ gitee中创建远程仓库并在IDEA中关联远程仓库内容创建仓库新建:git-project-sk创建步骤省略,如果忘记,可......
  • 代码区、常量区、静态区(全局区)、堆区、栈区
    代码区、常量区、静态区(全局区)、堆区、栈区?参考:https://blog.csdn.net/u014470361/article/details/79297601......
  • git拉取远程分支到本地
    1.新建一个文件夹2.初始化gitinit3.本地仓库和远程仓库建立连接[email protected]:fireworkwing/saveFileService.git4.拉取所有分支到本地仓库......
  • IntelliJ IDEA中提高代码开发效率的10个快捷操作
    作者:京东零售张宾IntelliJIDEA中提高代码开发效率的10个快捷操作IntelliJIDEA提供了一些Java的快捷键,同样也可以帮助我们提高日常的开发效率。关于这些快捷操作如下:1..p......
  • 代码随想录-day3
    字符串字符串的题目,通常涉及到对字符串进行各种操作,由于JAVA提供了非常多的库函数,所以在很多题目中我们可以使用库函数快速使这道题解决,但是这与我们训练算法和编码能力相......
  • vue2项目增加eslint配置代码规范示例
    eslint用于代码检查,prettier用于代码格式化,具体操作如下1.安装以下eslint插件安装以下eslint插件,并增加.eslintrc.js配置文件,.eslintignore配置忽略检查的文件(1)eslint......
  • 一张图看懂CodeArts Repo 6大特性,带你玩转代码托管服务
    华为云CodeArtsRepo是华为全栈自研的代码托管服务,基于Git提供分布式代码管理和协同开发能力,包括成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、持续集成......
  • IntelliJ IDEA中提高代码开发效率的10个快捷操作
    作者:京东零售张宾IntelliJIDEA中提高代码开发效率的10个快捷操作IntelliJIDEA提供了一些Java的快捷键,同样也可以帮助我们提高日常的开发效率。关于这些快捷操作如下:1......