gerrit 添加用户 clone review 提交流程
吐槽一下,在使用方面,gerrit要比gitlab复杂的。除了代码review功能外,其他的真的没有gitlab好用。希望gerrit越来越好。
1,登录gerrit后台,创建用户组和项目,网上有很多这种手册就不详细说了
2,生成普通用户公钥和私钥
$ SSH-KEYgen -t rsa
3,配置私钥连接服务器
$ cat ~/.ssh/config //如果没有这个文件,创建之 Host 192.168.0.12 Hostname 192.168.0.12 User tank IdentityFile /Users/zhangying/.ssh/tank
这里的User最好根创建的用户一样。
4,登录到linux服务器,创建gerrit用户
$ htpasswd -m /home/gerrit/gerrit_web/etc/passwords tank
-m增加用户,添加完用户后,要重启一起Nginx。
5,gerrit后台,将添加的tank用户放到用户组中
6,登录tank账号,添加邮箱,将公钥放到gerrit后台
上面的4,5,6步可以通过一条命令来实现。
$ cat ~/home/tank/.ssh/id_rsa.pub | ssh gerrit gerrit create-account --full-name tank --email tank.zhangying@xxxxx.com --SSH-KEY - tank
7,clone项目
$ git clone SSH://tank@192.168.0.12:29418/dtutor.git
注意开放29418端口
8,git设置用户名和邮箱
$ git config user.name tank $ git config user.email tank.zhangying@leoedu.com
不要加global,不然全局的都会变掉。到clone的项目根目录下就行。
用户名和邮箱必须和添加的用户名和邮箱一样。不然会报以下错误。
MacBook-Pro:mytest zhangying$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 280 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
remote: Processing changes: refs: 1, done
remote:
remote: ERROR: In commit 3d4f444de7ec17549812a30550ca286fc30bd0c8
remote: ERROR: committer email address zhangying@zhangyingdeMacBook-Pro.local
remote: ERROR: does not match your user account and you have no 'forge committer' permission.
remote: ERROR:
remote: ERROR: The following addresses are currently registered:
remote: ERROR: tank.zhangying@xxxx.com
remote: ERROR:
remote: ERROR: To register an email address, please visit:
remote: ERROR: http://gerrit.xxxx.com/#/settings/contact
remote:
remote:
To SSH://192.168.0.12:29418/dtutor.git
! [remote rejected] master -> refs/for/master (invalid committer)
error: failed to push some refs to 'SSH://tank@192.168.0.12:29418/dtutor.git'
9,gerrit拒绝直接提交代码到master
$ git config remote.origin.push refs/heads/*:refs/for/*
将代码提交到当前分支的head分支下,等代码审核后,由审核人员决定是否merge到master分支。
到这儿,用户就可以提交代码了。
10,commit msg copy到本地项目中
$ git rev-parse --git-dir //查看当前项目,git配置目录 $ scp -p -P 29418 tank@192.168.0.12:hooks/commit-msg .git/hooks/
11,设置watched projects
gerrit后台=》people=》右上角自己的名字点击=》settings=》左边导行选择watched projects=》查找project=》选择关注的项目=》把相关的复选框全选上
开发人员,code review人员,审核人员都要进行这步操作。
12,项目用户组权限设置
上图添加了4个权限,read,label code-review,label verified,submit,每个权限对应不同的,用户组。不要个性all project的默认权限,不然所有项目都会被改变。
13,tank提交提交代码,然后代码review人员,审核人员登录后台都通过后,代码就会merged到master分支了。