环境:git
Gerrit Server:172.16.206.133 es6
Client:172.16.206.129shell
一、在Gerrit服务器上建立用户vim
Gerrit服务器使用的是HTTP认证类型,并用httpd作反向代理,建立用户使用如下命令浏览器
#cd /home/gerrit2/gerrit/etcbash
[root@localhost etc]# htpasswd -m passwords user2服务器
New password: dom
Re-type new password: yii
Adding password for user user2ssh
根据提示输入密码便可(密码设置为123456),这样帐号就建立好了。建立完成,httpd和gerrit服务不须要重启。
二、登陆gerrit用户
用建立的user2帐号访问gerrit,在浏览器地址栏输入:
输入登陆的帐号密码,帐号为user2,密码为123456
三、修改gerrit用户配置
登陆后,在网页右上角点击本身的用户名,在点击“settings”。
settings中就是用户的配置相关信息,须要注册邮箱和提交服务器上的公钥
一、提交公钥
注意:为何要提交公钥文件到gerrit服务器?若是不提交公钥,则不能使用git push命令将本地代码提交到gerrit服务器。公钥是一个认证方式。
在客户端172.16.206.129这台服务器上建立公、私钥对,具体命令以下:
生成的密钥文件以下:
[user2@host2 ~]$ ls .ssh/
id_rsa id_rsa.pub
id_rsa.pub为公钥文件,将该文件中的内容,复制并粘贴到settings==>SSH Public Keys中,并点击Add
测试SSH key是否提交成功,在client 172.16.206.129服务器上执行如下命令:
#ssh -p 29418 user2@172.16.206.133
29418为gerrit上SSH服务器监听的端口,user2为登陆的gerrit帐号,注意这里咱们使用哪一个帐号登陆gerrit就使用哪一个帐号测试,而且该帐号已经登陆了gerrit服务器,并且公钥已经上传。172.16.206.133为gerrit服务器的IP
能够看到链接成功,说明SSH Public Key上传成功。
为user2注册邮箱
点击Register后,登陆你刚才注册的邮箱,激活便可。
四、建立用户组并建立一个项目
注意,只有管理员组的用户才能建立group和Project
登陆Gerrit管理员帐号admin,建立一个新的组为group2。并将user2帐号加入该组
新建一个Project,名为Project2
五、gerrit代码审核流程
前面都是准备工做,接下来演示gerrit如何作代码审核的
a、client server( 172.16.206.129)的git初始配置
配置用户名和邮箱
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
b、用帐户user2登陆gerrit
在Projects==> List中找到Projects2,而后点击Clone with commit-msg hook, 在点击ssh按钮,
复制ssh下面项目地址:
直接将刚才复制的命令,在client server的命令行运行
注意:步骤b必定选Clone with commit-msg hook下面的地址来clone,不然在客户端使用git push
命令提交代码时会报错。若是不须要向gerrit服务器提交代码,那么你只需使用
git clone ssh://user2@172.16.206.133:29418/Project2
或者git clone http://user2@172.16.206.133:8081/a/Project2
c、建立一个文件,并提交到gerrit服务器端
用git add 和git commit命令将文件保存到git仓库中
d、用git push命令将代码从本地传到gerrit服务器对象项目下的master分支
origin:远程仓库的名称,用git remote 能够查看全部的远程仓库名称
e、用user2帐号登陆Gerrit Web UI,邀请管理员admin来作code review。
注意:以前忘记截图了,因此下图不是原图,可是基本上都同样,只有Owner和Project不对而已。
Add:添加指定用户来进行Code Review
Cherry Pick:切换分支,当执行push操做以后若是发现分支不对,须要切换,能够在这里点击Cherry Pick按钮进行分支切换操做。
Abandon:撤销push操做,当push以后,若是发现代码有问题,须要修改,能够点击这个按钮,而后修改代码,修改完成后,再次push,而后登录Gerrit Web UI,会有一个Restore按钮,这时候点击Restore,就能够从新申请Code Review。
e、看看Gerrit服务器上是否有code review的信息
登陆gerrit管理员帐号admin,在ALL下面点击“Open”,看到“建立了test.sh”这条记录。
这里“建立了test.sh文件”就是git commit -m "建立了test.sh文件" 这条命令产生的
点开这条记录,看到如下信息
咱们能够点开test.sh文件看到里面的内容
还能够看到提交者的信息:
这里显示的用户名和邮箱地址实际上是在client server上初始化git时,用如下命令配置的
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
点击上上图中的code review和replay进行代码审核
-2 表示不经过,+2表示代码ok能够经过审核,目前尚未深究这个,我理解的就是这样子的。
审核后能够看到审核的日志
以上就是gerrit代码审核的流程,gerrit仓库是纯粹的代码仓库,不存在work tree这个说法。因此在gerrit仓库里面执行git命令都会报错:
可是,若是用git clone将gerrit仓库里面的项目clone下来后,就自动变成了一个git仓库。