面向使用者的git与gerrit相关笔记

git与gerrit相关笔记

  • 前言
  • 一、gerrit是什么?
  • 二、一些配置
    • 1.先配置全局email 和name
    • 2.gerrit配置ssh key
    • 3.可能遇到的问题
  • 三、提交代码和合并冲突
    • 常用Git命令三件套
    • 严格的要求
  • 总结


前言

本文是介绍什么是gerrit和工作中git与gerrit相关的命令来避免一些提交代码的坑


一、gerrit是什么?

Gerrit 是一个基于 web 的代码评审工具, 它基于 git 版本控制系统。旨在提供一个轻 量级框架, 用于在代码入库之前对每个提交进行审阅。开‎发人员的修改首先将上载到 Gerrit, 但 实际上并不成为项目的一部分, 直到它们被审阅和接受。它是标准开源过程的一个工具来支持提 交补丁程序, 然后由项目成员在应用到代码库之前进行评审。‎

Gerrit 首先是一个临时区域, 在提交的代码成为代码库的一部分之前, 可以对其修改进行 检查。‎普通开发人员可以随意提交代码,但是需要专家(特定权限)对提交的 代码进行评审 打分,对于不合格的代码,专家有废弃的权利,只有检视通过的代码,才能被专家提交入库。

二、一些配置

这个东西都是老生常谈了,在进行配置前,先确保自己的Git已经下载,gerrit已有项目权限

1.先配置全局email 和name

在命令行中配置

git config --global user.email "you@example.com"git config --global user.name "Your Name"

2.gerrit配置ssh key

先登录gerrit网站,然后右上方点击设置

在这里插入图片描述

选中ssh key

在这里插入图片描述

添加ssh key

在这里插入图片描述

在红色箭头中搜索你的项目

在这里插入图片描述

选中你的项目,并复制Clone with commit-msg hook下得Git clone链接进行项目拉取

3.可能遇到的问题

如果这个时候Git提示你权限拒绝,那么在.ssh目录下(我的路径为C:\Users\issuser.ssh)新建一个config文件,里面内容新增

Host *HostKeyAlgorithms +ssh-rsaPubkeyAcceptedKeyTypes +ssh-rsa

在这里插入图片描述
再进行拉取

三、提交代码和合并冲突

常用Git命令三件套

git add .git commitgit push origin master

如果中间有多笔提交,我们一般会在push前将git add .和git commit重复几次

严格的要求

我们要求一个commit对应一个任务,同一个任务不能提交多个commit,并且因为gerrit对review的原因push命令也有不同

因此我现在的代码提交变成了这样

git add .git commitgit push origin master:refs/for/master//merge 远端代码
git pull --rebase origin master//多笔提交合并为一笔
git commit --amendgit push origin master:refs/for/master

总结

和很多公司常用的代码库gitlab或者什么华为云阿里云不同,Gerrit更侧重于review,而正因为如此提交代码的方式和平常也不相同,而我们公司的leader代码审核非常的严格(不是说不好),但是用idea的图形化工具提交代码不太能行得通,只能用命令行的方式来提交代码,这也是为什么有这篇文章的原因。

部分摘录于Gerrit使用教程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/140437.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript中的代理对象(proxy)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 创建代理对象⭐ 使用代理对象⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友…

负载均衡 —— SpringCloud Netflix Ribbon

Ribbon 简介 Ribbon 是 Netfix 客户端的负载均衡器,可对 HTTP 和 TCP 客户端的行为进行控制。为 Ribbon 配置服务提供者地址后,Ribbon 就可以基于某种负载均衡算法自动帮助服务消费者去请求。Ribbon 默认提供了很多负载均衡算法,例如轮询、随…

leetcode:2446. 判断两个事件是否存在冲突(python3解法)

难度:简单 给你两个字符串数组 event1 和 event2 ,表示发生在同一天的两个闭区间时间段事件,其中: event1 [startTime1, endTime1] 且event2 [startTime2, endTime2] 事件的时间为有效的 24 小时制且按 HH:MM 格式给出。 当两个…

使用 PyTorch 的计算机视觉简介 (5/6)

一、说明 本文主要介绍CNN中在pytorch的实现,其中VGG16网络,数据集来源,以及训练过程,模型生成和存储,模型调入等。 二、预训练模型和迁移学习 训练 CNN 可能需要大量时间,并且该任务需要大量数据。但是&am…

python随手小练3

题目: 写出一个判断闰年的python代码: 闰年的条件: 如果N能够被4整除,并且不能被100整除,则是闰年 或者:N能被400整除,也是闰年 即:4年一润并且百年不润,每400年再润一…

Verilog 不同编码风格对综合电路的影响

文章目录 示例 #1示例 #2示例 #3 Verilog是一种硬件描述语言(HDL),用于设计数字电路和系统。统一、良好的代码编写风格,可以提高代码的可维护性和可读性。 同样的功能,不同的Verilog 编码风格也会对综合过程产生重大影…

安全远程访问工具

什么是安全远程访问 安全远程访问是指一种 IT 安全策略,允许对企业网络、任务关键型系统或任何机密数据进行授权、受控访问。它使 IT 团队能够根据员工和第三方的角色和工作职责为其提供不同级别的访问权限,安全的远程访问方法可保护系统和应用程序&…

软件设计模式系列之十三——享元模式

1 模式的定义 享元模式(Flyweight Pattern)是一种结构型设计模式,它旨在减少内存占用或计算开销,通过共享大量细粒度对象来提高系统的性能。这种模式适用于存在大量相似对象实例,但它们的状态可以外部化(e…

Android滑动片段

本文所有的代码均存于 https://github.com/MADMAX110/BitsandPizzas 回到BitsandPizzas应用,之前已经创建过创建订单和发出反馈等功能。 修改披萨应用,让它使用标签页导航。在工具条下显示一组标签页,每个选项对应一个不同的标签页。用户单击…

ThreeJS-3D教学一基础场景创建

Three.js 是一个开源的 JS 3D 图形库,用于创建和展示高性能、交互式的 3D 图形场景。它建立在 WebGL 技术之上,并提供了丰富的功能和工具,使开发者可以轻松地构建令人惊叹的 3D 可视化效果。 Three.js 提供了一套完整的工具和 API&#xff0…

知识图谱:信息抽取简易流程

目录 一、标注训练数据 二、训练数据模型 三、实现NER 一、标注训练数据 使用工具:Brat ## BRAT安装 0、安装条件 (1)运行于Linux系统 (2)brat(v1.3p1)仅支持python2版本运行使用,否则会报错 File "standalone.py", line 257except SystemExit, sts:^Syn…

c++中关于Thread Affinity(线程亲和性)示例源码

win10下,可以在任务管理器里面设置某个进程的线程亲和性,如下图: 然后选择相关的cpu,如下图: 这么做可以使得相关的线程在某些密集型计算任务中只会运行在某些指定的cpu上,以便提高性能。 以下是windwos上c程序中应用Thread Affi…

Python 运行代码

一、Python运行代码 可以使用三种方式运行Python,如下: 1、交互式 通过命令行窗口进入 Python 并开始在交互式解释器中开始编写 Python 代码 2、命令行脚本 可以把代码放到文件中,通过python 文件名.py命令执行代码,如下&#xff…

使用 LangChain 和 Elasticsearch 对私人数据进行人工智能搜索

关于本博文的所有代码可以在地址下载:GitHub - liu-xiao-guo/python-vector-private 我将在本博文中其中深入研究人工智能和向量嵌入的深水区。 ChatGPT 令人大开眼界,但有一个主要问题。 这是一个封闭的托管系统。 在一个被大型网络公司改变的世界里生…

【轨道机器人】成功驱动伺服电机(学生电源、DCH调试软件、DH系列伺服驱动器)

1、硬件平台 工控机 学生电源 DH系列伺服驱动器 电机 调试平台:DCH 2、如何利用dch驱动电机 点击可驱动电机 下面的步骤是比较关键的几步: 3、遇到的问题 不能成功驱动电机,还和厂家那边打电话,询问 发现是这…

【C++】bitset位图的简单模拟实现及常见面试题

文章目录 前言一、 bitset模拟实现二、 常见面试题1.给你一百亿个整数,找到只出现一次的数字2. 给两个文件,分别有100亿个整数,我们只有1G内存,如何找到两个文件交集? 前言 快速查找某个数据是否在一个集合中排序 去重…

Hdoop伪分布式集群搭建

文章目录 Hadoop安装部署前言1.环境2.步骤3.效果图 具体步骤(一)前期准备(1)ping外网(2)配置主机名(3)配置时钟同步(4)关闭防火墙 (二&#xff09…

ddns有什么作用?无公网IP怎么将内网IP端口映射外网访问

DDNS是什么? DDNS英文全称Dynamic Domain Name Server,中文含义是指动态域名服务。很多普通路由器或者智能路由器设置中,都可以找到DDNS(动态DNS)功能。 上面的解释可能过于专业,其实DDNS通俗点说&#xf…

小程序社区团购demo

概述 实现了用户登录或者手机号,加入团长,邀请团长,各种佣金明细等页面 详细 需求: 根据市场信息反馈,社区团购比较火,有流量的用户可以推广页面 实现了功能: 实现了用户微信登录自动获取…

BottomNavigationView3个以上图标不显示文字

问题 当BottomNavigationView设置的菜单中超过三个图标时,出现只有焦点聚集到图标时才会显示底部设置的文字描述,当没有焦点聚集则只显示图标,效果如下: 解决办法 设置labelVisibilityMode值 如果BottomNavigationItemView类并…