首页 > 其他分享 >Gerrit了解

Gerrit了解

时间:2022-08-25 23:59:21浏览次数:76  
标签:Git Gerrit Patch 了解 git commit Change

转自:http://www.uml.org.cn/codeNorms/201901033.asp

1.介绍

Gerrit实际上一个Git服务器,它为在其服务器上托管的Git仓库提供一系列权限控制,以及一个用来做Code Review是Web前台页面。 

2.工作流程 

Gerrit相对Git提供了一个特有的命名空间“refs/for/”用来定义我们的提交上传到哪个branch,且可以用来区分我们的commit是提交到Gerrit进行审核还是直接提交到Git仓库,格式如下:refs/for/<target-branch> ,Push一个Commit到Gerrit:

$ git commit
$ git push origin HEAD:refs/for/master

 

默认不允许直接Push一个commit到Git仓库:

$ git commit
$ git push origin HEAD:master

 

3.概念

3.1 Change

一个Change包含一个Change-Id,Change-Id是一串SHA-1字符串。这个Id就是通过我们拉取代码库的时候所拷贝的hooks(hooks/commit-msg)自动生成的。

包含一个或多个Patch Set,以及诸如Owner,Project,Target branch,Comments等信息。

在一个project的每个branch中Change Id是唯一的。(?什么意思?)

3.2 Patch Set

一个Patch Set就是一次commit,Gerrit会将其生成一个Branch暂存。Change中的每提交一个Patch Set表示这个Change的一个新的版本,自动覆盖前一个Patch Set, 默认情况下,仅最后一个Patch Set是有意义的。Code Review通过时,也仅仅是最后一个Patch Set会合并到指定的branch中。

个人Git工作原则一

** 永远是基于远程库的最新代码工作,尽量每一步操作(特别是add/commit/push)都通过git pull --rebase获取一下当前最新版本。**

根据以上原则,建议在将本地commit push到Gerrit之后,立马reset掉,或者重新切换一个新的分支工作。(还是重新切换一个分支工作吧,直接reset风险较大,万一代码不合格倍打回来呢。)

上传一个新的patch set:

当我们的commit被reviewer打回来时,我们可能需要修改并重新提交。可以重新切换回包含此commit的分支,在此代码基础上进行修改,重新add,amend commit:

// rework the change
$ git add <path-of-reworked-file>
...

// amend commit
$ git commit --amend

// push patch set
$ git push origin HEAD:refs/for/master

个人Git工作原则二

** 尽可能保证每一个Change的完整性以及独立性,且越小越好。**

 

标签:Git,Gerrit,Patch,了解,git,commit,Change
From: https://www.cnblogs.com/BlueBlueSea/p/16626207.html

相关文章

  • 了解单例模式
    单例模式单例模式是什么?单例设计模式(SingletonDesignPattern)如果一个类只允许创建一个对象(或者实例),那这个类就是一个单例类,这种设计模式就叫作单例设计模式,简称单例模......
  • 你真的了解java的泛型吗?
    1.java可以声明泛型数组吗?​ 我们都知道在java中声明一个普通数组,但是你知道如何声明一个泛型数组吗?​ 先来看一个简单的例子,Animals是Cat的父类,思考下Animals[]和Cat[......
  • 生活中有哪些必备的知识技能需要了解? 黄海
    如何更好地处理拖延症的方法。利用帕金森定律来管理你的时间留给你的时间越多,你做一样事情就会倾向于慢慢完成。这就是为什么当你只剩下最后5分钟的时候,你的工作效率......
  • 彻底了解线程池的原理——40行从零开始自己写线程池
    前言在我们的日常的编程当中,并发是始终离不开的主题,而在并发多线程当中,线程池又是一个不可规避的问题。多线程可以提高我们并发程序的效率,可以让我们不去频繁的申请和释放......
  • 了解linux操作系统内核
    liunxguidelinuxinterfaceapplicationinterfacesystemcallinterfacelibraryfunctioninterfacelinuxcomponentbootloader引导程序(Bootloader):引导程序是管......
  • 客服系统都有什么作用?客服软件的这些强大功能你是否了解?
    客服系统都有什么作用呢?其实很多企业可能对于客服软件的功能并不是特别了解,觉得它只是一种智能应答的软件而已,但其实它的功能是非常非常丰富的,今天就给大家简单说一下关于......
  • 计算机网络-应用层了解
    应用层为什么需要应用层工作模式域名系统根域名服务器域名解析的过程DNS服务器高速缓存FTPFTP的工作原理TFTPTELNETSSH与TELNET超文本传输协议......
  • Gerrit拉取代码
    从Git上获取的公钥add到Gerrit上,显示的是主机名,重新生成密钥,后缀为邮箱;在从Gerrit上拉取代码时,要区分从仓库HTTP拉取,还是从SSH,如果选择错误,Git出现以下错误:   ......
  • 了解前端路由 hash 与 history 差异
    路由跳转有两个模式可以选择一个是hash一个是 history二者有什么区别呢我们来细说首先是路由默认的hash模式hash模式最显著的特点就是会在url链接后面加是一个#随......
  • 软件测试入门八(测试需要对接口的了解)
    一、什么是接口开发方:后段开发,人们常说的Java开发使用方:前端开发,人们常说的vue、h5、安卓、iOS等等举一个简单的例子:百度搜索的接口当用户想要搜索他需要的内容时,用户......