Gerrit 使用操作手册

一、Gerrit简介

Gerrit 是一种免费、开源的代码审查工具,使用网页交互页面。这个软件的名称来自于荷兰设计师师赫里特·里特费尔德(Gerrit Rietveld),作者为Google公司的Shawn Pearce。它使用Git作为底层版本控制系统,相比于其他的代码管理工具,Gerrit明显的特色是代码审核。利用网页浏览器,同一个团队的软件程序员,可以相互审核(Review)彼此修改后的程序代码,然后决定是继续提交还是取消提交。

二、Gerrit使用
2.1 激活账号

在浏览器输入:192.168.211.164,登录账户,首次登录需要激活。即登录后在设置(齿轮图标)的Email Addresses中配置邮箱地址,并根据接收到的邮件进行激活,激活时Username、Full name和Display name可以配置成相同。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.2 本地生成ssh-key公钥

在git bash中使用以下命令,直接回车即可。

ssh-keygen -t rsa -C “your email”

秘钥默认保存在C盘用户下,例如:/c/Users/86137/.ssh/id_rsa.pub

2.3 gerrit配置免密下载ssh keys

点击设置后,选择左边菜单栏的SSH keys,将本地生成的秘钥贴入并保存。

在这里插入图片描述

2.4 查询项目,点击browse下的repositories进行查看,项目较多时,可以在filter中输入名称进行过滤。

在这里插入图片描述

2.5 下载代码

首次下载代码需要请使用repository中的第一个命令进行下载,如果使用第二条命令,可能无法提交或未经过gerrit,无法实现代码审核

建议:优先选择使用ssh的方式

在这里插入图片描述

如确实需要使用http方式,http弹框的密码需要从页面设置中点击http credentials生成

在这里插入图片描述

2.6 修改与提交

修改与提交前先进行git的相关配置,下载后进入项目,在项目路径下执行

如果本地只需要一个账号登录,可以设置全局变量,执行以下两条命令:

git config --global user.name " *** "

git config --global user.email " *** "

如果本地存在多个账号使用或者不同项目需要不同账号,则去掉–global

git config user.name " *** "

git config user.email " *** "

关联提交远程路径:

git config remote.origin.push refs/heads/:refs/for/

新建或修改文件后先执行

git add filename或. (.表示当前目录下所有新增或修改文件添加至暂存区)

git commit -m “message” 用于提交至本地仓库

git push origin HEAD:refs/for/master 推送至远程暂存区

在这里插入图片描述

2.7 Gerrit页面进行代码审核并合并至远程分支

在这里插入图片描述

点击review link进入审核页面后,根据页面中间的files进行代码内容变更的查看,确认后根据具体权限进行相关操作,当code-review达到+2,verified达到+1后进行代码的提交

在这里插入图片描述

在这里插入图片描述

2.8 远程合并后本地需要git pull更新同步,更新后可通过git log查看

在这里插入图片描述

三、常见问题处理
3.1 每次commit都会生成一个change id,也就会在gerrit中生成一个review请求,为避免review请求过多,可以按照以下两种方法进行操作

方法一:减少commit的使用,可以在本地执行add后,在push之前使用一次commit

方法二:第一次使用commit后,后面使用commit时通过git commit --amend进入修改页面修改Change-Id,此时push后会只产生一个review请求

3.2 当submit灰色或报错时

git submit including parents

原因:由commit依赖引起,例如有两次review A和B,A是先提交至gerrit,但是并没有审核代码并且submit,此时又提交了新的review请求B,B包含了A的修改,于是A上进行了abondon操作,只留下B在gerrit中,就会出现该错误。A和B按顺序合并时不会报错。

解决:此时需要从远程分支拉取一个新的分支:

git fetch origin master:new_branch

本地切换到新分支:

git checkout new_branch

然后点击review页面edit右边三点,选择download patch,复制Cherry Pick命令

git fetch “url” refs/changes/*** && git cherry-pick ***

在这里插入图片描述

再执行git add . 和 git commit,commit时会提示冲突和解决,保存后用git push提交

git push origin HEAD:refs/for/***

完成后重新进入gerrit的review页面进行review和submit。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐