Gitlab fork and code review 流程

2023-10-31

Gitlab fork and code review

1、CodeReview的目的

CodeReview的目的是提升代码质量,尽早发现潜在缺陷与BUG,降低修复成本,同时促进团队内部知识共享,帮助更多人更好地理解系统。

2、git fork项目合作流程

 

1、fork项目:从其他人的项目A中fork一份到自己github或者gitlab的项目目录下

2、clone项目: clone一份自己的项目到本地 git clone xxxxxxx.git

3、修改远程项目路径:

添加:git remote add upstream xxxxxxx.git

修改:git remote set-url origin <url>

删除:git remote rm origin

4、使用git remote -v查看: 可以看到有upstream 和 origin

3、源项目与自己的本地代码进行合并git pull upstream

或者git fetch upstream     git merge upstream

4、修改本地项目代码之后,使用git add .然后提交git commit -m "提交的信息"将修改的代码合并

5、提交代码到自己的远程项目中:git push origin master

6、通过pull request提交到他人项目中:在自己的github上找到pull request;如果是gitlab,找到merge request新建将自己修改的代码推送到原项目进行审核。

7、分支的使用

git branch 查看一下当前分支

git branch xx 新建一个xx分支,但是不会切换到上面去

git checkout xxxx 切换到xxxx分支上面

git checkout -b xxx 表示创建并切换到xxx分支上面

get merge xx 合并xx分支到当前的分支上面

git branch -d xxx 删除xxx分支

 

3、管理者配置工程权限(私有云工程为例)

(1)设置merge request settings 权限

 

(2)设置分支保护,不允许任何角色push,只允许masters merge code

 

(3)设置Members 权限,将普通开发者设置为developer,项目组长设置为master

 

通过以上步骤的设置,所有人都不能直接push代码到私有云远程仓库

4、开发者开发流程(私有云工程为例)

(1)打开私有云工程的详情界面,点击fork按钮,fork出个人远程仓库

    备注:后面分别称为私有云远程仓库和个人远程仓库和个人本地仓库

 

这样就有了个人远程仓库:

 

(2)去个人本地仓库修改远程仓库地址最后结果如下:

 

(3)在本地修改代码,并提交到自己的本地远程仓库

 

 

(4)gitlab上打开个人远程仓库,并发起merge request 请求

 

选择仓库和分支

 

填写merge request 信息 ,标题填写本次合并代码修改内容

描述中@需要code review的其他同事,assignee 中选择最终合并的代码的master

 

(5)你本人,其他同事都可以在私有云远程仓库看到这次merge request,其他同事可以针对你的代码提出问题

或者没有疑问,添加已阅

 

(6)当有问题时,代码不能合并,你需要解决问题,并在gitlab上回复解决。

 

(7)所有问题都解决,并且同事都有阅读过。当前小组masters可以合并代码到私有云远程仓库

 

5、developer和master 进行code review

(1)gitlab上看到merge request或者todos,然后点开进行codereview

(2)针对修改的代码提出问题,或者在discussion添加已阅

 

(3)大家都完成codereview后,master merge code

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Gitlab fork and code review 流程 的相关文章

  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol
  • git Blame:合并后正确的作者

    GIT 合并引入了新的提交 这会导致 git Blame 问题 合并的行似乎是由进行合并的开发人员提交的 我可以理解这种情况冲突的变化 因为他解决了冲突 但是有没有办法让非冲突线路不发生这种情况呢 一些 git Blame 的选择 如果没有
  • 按时间顺序将多个文件夹提交到 git 中

    我有数百个网站备份 每个文件夹一个 我想将它们放入 git 存储库中 每个备份作为一个版本 这些变化主要涉及图像文件和每天 2 个数据库备份 大小约为 25 GB 并且不断增加 有没有办法告诉 git 获取其中一个文件夹并将其提交到存储库中
  • 如何签出仅在“git ls-remote”中列出的分支?

    我遇到了无法切换到仅列出的分支的情况git ls remote 这是详细信息 我分叉了一个 github repoA 作为 repoB 创建了自己的分支并将其推送到 ComputerA 中的 repoB 在 ComputerB 中 我将分叉
  • 合并 BPM 图表的最佳实践

    我们在 Java 环境中使用 Alfresco 活动图 这些图是有版本的 我们确实使用 GIT 我们经常会遇到合并分支的合并冲突 解决这个问题确实很痛苦 因为我们必须比较文件的文本内容来检查差异 有时 重新应用更改比合并更轻松 是否有合并此
  • 使用 GitHub,在添加现有存储库时如何推送所有分支?

    我创建了一个新的 GitHub 存储库 我想将现有的存储库放在那里 我按照说明操作 cd existing git repo git remote add origin email protected cdn cgi l email pro
  • 如何恢复已删除的远程分支

    我们的远程主分支被删除 我有主存储库的本地副本 但它已经过时了 我可以通过将最后一个已知的提交哈希值插入 URL 来查看 github 中的分支 但未能成功恢复它 我尝试了几个步骤来恢复它 git reset hard 16deddc05c
  • 如何获取 git 存储库中所有文件的计数?

    如何获取 git 存储库中当前所有文件的计数 您可以使用以下命令获取 git 存储库中所有跟踪文件的计数 git ls files wc l 命令分解 The git ls files命令本身打印出存储库中所有跟踪文件的列表 每行一个 Th
  • 为什么cherry-pick 告诉我所有行都已更改?

    Updated 考虑文件 abc 在提交 A 和 B 中都相同 begin 123 456 789 klm end 在A中 我们重构第一行123 gt AAA并在结果之上选择 B Git 告诉我们all lines in the file
  • Smartgit:自动插入提交消息

    有没有办法使用钩子脚本在 Smartgit 中自动插入提交消息 重击 如果用户提交了他的更改 我想预加载提交消息字段 我没有看到任何SmartGit配置 http www syntevo com smartgit documentation
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 创建多个 git 分支的联合分支

    我希望能够在现有分支之上分层其他分支 并独立修改这些分支 这很有用 例如 允许将各个子项目的二进制文件统一到同一个项目中bin目录 一般来说 给定的文件仅存在于一层中 理想情况下 我想我会使用 unionfs 来完成此任务 但它必须以某种方
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 如果您使用 CocoaPods,您的 .gitignore 中会包含什么内容?

    我从事 iOS 开发已经几个月了 刚刚了解到有前途的可可豆荚 http cocoapods org 用于依赖管理的库 我在个人项目上尝试过 添加了依赖项Kiwi https github com allending Kiwi到我的 Podf
  • 在种子项目上构建时如何组织 git 存储库

    我正在基于从 github 克隆的种子项目 MEAN io 构建一个网站 如何将这些文件与我自己的文件分开 由于该种子提供了广泛的文件框架 因此我自己的文件分布在整个项目中 我希望能够从种子中提取更新 但不能将其与我添加的文件混合 我知道我
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • Git - 使用过滤器分支删除带有空变更集的提交

    如何使用 git filter branch 删除没有变更集的提交 我使用以下方法重写了我的 git 历史记录 git filter branch tree filter rm r f my folder f HEAD 效果很好 但现在我有
  • 如何在 git 中将我的功能分支变基到开发分支,尽可能减少冲突?

    我的功能分支已超过大约 30 次或更多提交 与此同时 在开发分支中 其他开发人员还推出了一些其他功能 因此 每次在开发中发布新功能时 我都会被要求 将开发分支重新建立到我的功能分支上 解决冲突 如有 继续在您的功能分支中开发 问题 第二步就
  • 我如何才能看到 Github 风格的东西,例如 git -repo 的打孔卡和时间线?

    我正在寻找一个可以可视化 git repo 工作的软件 我喜欢 Github 的一些功能和 Bitbucket 的一些功能 所以我不想使用它们 因为它们并不完美 我正在寻找创建类似视觉特征的方法 下面你可以找到一些部分 但仍然缺少很多谜题
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • Java循环运行时暂停一段时间

    原文链接 GitHub项目地址 https github com Snowstorm0 learn sleep Gitee项目地址 https gitee com Snowstorm0 learn sleep Java 在运行 for 循环
  • DirectX9中Pixel Coordinates System的一个怪异特性

    http drilian com 2008 11 25 understanding half pixel and half texel offsets 这个文章解释的很详细 他的blog里面也有很多的文章 值得一看哦 总结下来就是这样 在D
  • Unity Resource文件基础操作(一)

    Unity Resource文件的基本概念 本篇文章主要讲解Resource文件在Unity场景中的使用以及他的基本概念 文章目录 Unity Resource文件的基本概念 前言 一 Resource文件是什么鬼 二 Resource常用
  • 存储管理系统课程设计——C语言实现请求页式存储管理模拟系统

    分页存储管理是将一个进程的逻辑地址空间分成若干个大小相等的片 称为页面或页 并为各页加以编号 从0开始 如第0页 第1页等 相应地 也把内存空间分成与页面相同大小的若干个存储块 称为 物理 块或页框 frame 也同样为它们加以编号 如0
  • disabled和readonly的区别是什么

    disabled和readonly的区别是什么 这两个属性有类似之处 但是区别也是巨大的 之所以说类似 是因为这两个属性好像都貌似能够将指定的元素设置为 不可用 状态 下面就简单介绍一下它们两个的区别 希望能够给大家带来一定的帮助 一 作用
  • Easyexcel导入导出List类型数据报错:Can not find ‘Converter’ support class Li,的解决方法

    目录 问题分析 解决方法 手动编写List类型转换类 问题分析 Easyexcel默认是不支持List类型数据自动转换的 因此当实体类传递数据为List类型时需要手动编写转换类来实现数据转换 否则会报错 Can not find Conve
  • win11桌面图标无法移动(一次到位,必解决)

    按照步骤做 必解决 笔记本桌面图标无法移动我直接气到炸了 怎么弄都弄不好 右键单击自动排列也取消了 多次按Esc键也按了就是没效果 在终端输入了gepdit msc指令也显示找不见 就很奔溃 最后查了好久好久终于给弄好了 具体步骤 一 wi
  • uva 1601 The Morning after Halloween

    题目 The Morning after Halloween 题意 有n个用小写字母表示的鬼和一张地图 每个鬼都要移动到对应的大写字母 两个鬼的位置不能在一次移动中交换 问最少步数 思路 bfs 1 先将地图用图的方法表示 即在每一个空白
  • Simcenter Amesim 2020中文版

    教程 1 下载安装包并解压缩 将LMS RLM Server文件夹复制到C盘目录下 以管理员身份运行server install bat启动服务 资源地址 imcenter Amesim 2020中文版 2 创建系统环境变量 变量名 LMS
  • js删除数组中某一项或几项的几种方法

    1 js中的splice方法 splice index len item 注释 该方法会改变原始数组 splice有3个参数 它也可以用来替换 删除 添加数组内某一个或者几个值 index 数组开始下标len 替换 删除的长度item 替换
  • 【Linux】】Linux权限的理解

    一 Linux中的用户 Linux中分为两种用户 分别为 1 root 用户 也叫超级用户 它的权限非常高 不受其他权限的约束 也就是可以为所欲为 2 普通用户 除了root用户外 都是普通用户 受权限的约束 我们可以输入命令 ls hom
  • Vue.js学习路径 & Web前端工程知识体系

    ECMAScript 6 ECMAScript 6 0 简称 ES6 是 JavaScript 语言的下一代标准 已经在 2015 年 6 月正式发布了 它的目标 是使得 JavaScript 语言可以用来编写复杂的大型应用程序 成为企业级
  • 类和函数模板特例化

    引入原因 编写单一的模板 它能适应大众化 使每种类型都具有相同的功能 但对于某种特定类型 如果要实现其特有的功能 单一模板就无法做到 这时就需要模板特例化 定义 是对单一模板提供的一个特殊实例 它将一个或多个模板参数绑定到特定的类型或值上
  • THUDM/chatglm-6b-int4运行缺少gcc和openmp的问题

    在运行ChatGLM 6B的时候 本人是小白 遇到这几个问题 解决方法分享给大家 1 缺少gcc的问题 参考 GCC编译器的安装教程 Windows环境 gcc安装教程 nhyltt的博客 CSDN博客 2 缺少openmp的问题 在这里下
  • PHP中的错误处理、异常处理机制

    http www cnblogs com cnbeir archive 2012 05 05 2484635 html 在编写php程序时 错误处理是一个重要的部分 如果程序中缺少错误检测代码 那么看上去很不专业 也为安全风险敞开了大门 例
  • Qt子类窗体和父类窗体的数据传递

    1 全局变量 extern 2 静态成员函数 static 3 信号槽 信号槽层层传递调用 爷爷类 gt 父类 gt 子类 但是父类的窗体如果是hide或者close是不能实现子类的信号传递给父类 在此处就已经传递不下去了 父类再传递给爷爷
  • gtest初识 - googletest(一)

    gtest是Google开发的一个开源单元测试框架 代码提供丰富的注释和实例 参考实际用例可以很快上手基本单元测试 丰富的代码注释能够让有兴趣的开发者深入了解gtest的代码结构并做部分针对性的二次开发 gtest主要针对c c 提供了针对
  • input属性placeholder在iOS中显示不完整的解决方法

    在一些高版本的ISO上设置placeholder显示的字体大小的时候 有时候会被遮挡掉一部分 出现原因 input 里面的字体大小小于placeholder的字体大小 解决方法 设置input字体大于placeholder的字体 input
  • 【Flutter】二维码生成,Widget转图片,图片保存相册

    文章目录 1 生成二维码 2 Widget转图片 3 图片保存至相册 1 生成二维码 使用qr flutter https pub dev packages qr flutter Container padding EdgeInsets o
  • Gitlab fork and code review 流程

    Gitlab fork and code review 1 CodeReview的目的 CodeReview的目的是提升代码质量 尽早发现潜在缺陷与BUG 降低修复成本 同时促进团队内部知识共享 帮助更多人更好地理解系统 2 git for