在使用gerrit之前,必须对git有一定的熟悉,
Gerrit安装篇介绍了怎么安装Gerrit,这篇会简单介绍下Gerrit如何使用,下面这张图是Gerrit的生命周期
仔细比较:gerrit多了一个”PendingChange”,这部分是做Code Review的,然后管理员verify之后,PendingChange代码就会合并到Git仓库了。
点击Settings,选择Contact Informations,点击右边的Register New Email,如下图我注册了一个通知邮件
这样有状态变化或者需要审核代码,就会接收到通知。
点击左边的”SSH Public Keys”,添加需要key,如何获取这个key,可以通过以下方式:
1) 如果不存在~/.ssh/id_rsa.pub文件,则通过下面命令生成
2)通过下面命令获取key
cat ~/.ssh/id_rsa.pub
点击“add”按钮,添加成功
需要登录管理员账号(第一个登录的账号就是管理员账号,当然你也可以使用管理员账号设置其他账号为管理员),点击Projects,选择最后一个菜单 “Create New Project”,如下图
一般情况创建的新工程都会继承与”All-Projects”,如下图:
点击”Create Project”按钮,创建成功之后,就可以在Projects的List列表看到了,如下图:
点击我们上面创建的HelloGerrit工程,你会看到下面这样的界面:
选中”clone with commit-msg hook”和”ssh”,会得到下面这样一个路径:
我们试下按照正常的使用git的方式commit和push代码,如下:
上面错误告诉我们:这个账号没有权限把代码直接提交到git仓库,这就是gerrit的精髓了,关于gerrit是怎么工作的,可以看下前言部分。
接下来,我们就需要配置账号可以提交到”PendingChange”了,
git config remote.origin.push refs/heads/*:refs/for/*
在浏览器打开上面的那个网址“http://192.168.1.3:9080/129”,内容很丰富
OK,接下来,审核者打开网页,阅读代码,比如其中的一个类文件
接下来审核者有两种选择
1)如果发现代码有问题或者不符合规范,他可以点击”Abandon Change”
因为在提交者的git log,这个被拒绝的提交仍然存在,所以需要去除这个提交的log,通过重置到上一个提交就可以了
git reset c7ad7f432ead7289685df6a4fd53cf0c2dd63c91
然后重新提交就可以了。
需要注意:每个提交只有满足了”+2”和”verified”才能submit合并到master分支。
我们注意到了这里没有 显示“verified”,所以我们需要去开启这个功能,
因为“HelloGerrit”的权限集成自“AllProjects”,所以对“AllProject”的Access进行修改
因为我们正在修改的是refs/heads/*,所以滑动到这个位置,添加相应权限,比如我已经添加好的
接下来看下,回到之前的地方,点击“review”按钮,如下图
需要注意几点:
1)合并代码需要Code-Review的”+2”和Verified的”+1”才能使用合并功能
2)CodeReview的所有选项和Verified的所有选项可以根据团队配置来分配,也可以都由一个人来做。一般情况:CodeReview的+1/-1对应初级审核,+2/-2对应更上一级审核;Verified就是合并之前的确认的。
这里,我自己选择CodeReview的”+2”和Verfied的“+1”,然后点击“Submit Patch set 1”成功了,可以看到代码已经合并了
接下来就可以团队其他成员就可以用git pull
拉取代码
其实Gerrit也可以像普通的git一样使用,只不过我们需要先修改一些权限, 还是像上面一样打开权限列表,见下图:
我们给“Administrators”分组添加了直接push的权限,这个分组下面的所有成员都可以像git一样使用gerrit,如果之前使用下面的命令修改了git push
git config remote.origin.push refs/heads/*:refs/for/*
在把gerrit当成普通git使用之前,需要做如下修改
git config remote.origin.push master
不知道安装gerrit,可以看下我之前写的Gerrit安装篇,以后有时间会根据实际项目使用,来继续补充gerrit使用。你也可以链接到下面三个地方深入学习gerrit
1)using gerrit
2)gerrit-review
3)gerrit tutorial