Gerrit安装使用
1.安装mysql(root权限)
apt-get install mysql-server mysql-client
2.进入mysql:
mysql -u root -p (root mysql用户名)
3.创建数据库和用户
CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'dhcc;
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';
FLUSH PRIVILEGES;
4.安装apache2:
apt-get install apache2
5.准备 gerrit-2.5.4.war 和bcprov-jdk16-144.jar
安装gerrit
创建专用账号: adduser gerrit
java -iar gerrit-2.5.4.war init -d gerrit-site (目录名)
cp bcprov-jdk16-144.jar gerrit-site/lib/
copy完之后按enter,继续安装
修改gerrit配置:gerrit-site/etc/gerrit.config
修改apache2的配置: /etc/apache2/httpd.conf:
或/etc/apache2/sites-enabled/gerritproxy
创建用户名,密码:
Touch /home/gerrit/documents/passwords
Thpasswd -m /home/gerrit/documents/passwords dhcc (用户名)
密码: wangbin
重启gerrit:
/home/gerrit/gerrit-site/bin/gerrit.sh start
apache开启反向代理:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
启用模块 sudo a2enmod <model>
禁用模块 sudo a2dismod <model>
上面提到的几个启动模块命令如下
sudo a2enmod proxy
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_ftp
sudo a2enmod mod_proxy_http
启动Apache2:
apache2ctl start
在浏览器登录:http://10.1.5.10
输入用户名密码后,若出错,重新登录即可
1.添加公钥,设置full-name、邮箱
收邮件,激活;
1、登录10.1.5.10,用户名和密码都是姓名全拼
2、打开右上角settings,在左边的栏目点击 contact information,填写fullname 和邮箱,点击注册和保持
3、到邮箱中,点击发的邮件,复制 类似下面的这句话,并在浏览器中打开,就ok “10.1.5.10:8081/#/VE/1g+4dsZdBhm+0MfNeUG+3c2kLabNfXnXrD7TLg==$ODp0aWFuemhhbnhpYW9AZGhjYy5jb20uY24=”
如果打不开 就在地址前面加 http://
2.创建项目
3.创建group:
4.设置工程权限:
进入图:
All-projects:
5.在本地clone这个项目
git clone ssh://zoupei@10.1.5.10:29418/trunk.git
6.设置本地的master跟踪远程master分支
$ git checkout -b master origin/master
这条命令即让本地master分支跟踪远程仓库origin中的master分支。
设置好更新后如果我们需要从远程仓库抓取数据,只需要运行
$ git pull
即可。而本地数据变动后,要提交到远程仓库,则执行:
$ git push
7.设置全局变量,一般需要设置用户名和邮箱,要不然你的功劳可要算在别人头上了
git config --global user.email “zoupei@dhcc.com.cn”
git config --global user.name “zoupei”
8.创建别名(~/.ssh/config)
在当前目录下的./ssh下创建config文件
Host zoupei
Hostname 10.1.5.10 (远程版本库的ip)
Port 29418
User zoupei
IdentityFile ~/.ssh/zoupei
9.下载钩子脚本,并添加到项目下的.git/hooks下
scp -r zouoei: /gerrit-files 下载命令 (zoupei 就是上面别名的应用)
将gerrit-files/hooks下commit-msg复制到项目下的.git/hooks
目的: 使每个人提交的代码都有一个唯一的change-id
10.config配置
上图是本地版本库中.git/config中的一部分
Push = HEAD:refs/for/wangbin (wangbin 是本地分支名) 这是该用户要提交的路径
注:该本地分支在远程版本库中应该有对应的分支
Receivepack = git receive-pack --reviewer=405590978@qq.com --cc=zoupei@dhcc.com.cn
这个是你确定要审核你代码的人的邮箱,之后可以自动发邮件
配置完这些,你只需要git push就行,不再添加路径
11.提交代码到gerrit
$ echo first commit >welcome.txt (创建)
$ git addwelcome.txt (添加)
$ git commit -m “test”(提交)
$ git push
12审核组的人进入web界面:
点击ALL底下的open,会看到待审核任务:
点击该审核任务,进入:
双击hello.c进行审核:
还可以点击下载按钮下载测试;
审核测试代码后,点击review按钮,进入:
进行批注后,点击pulish Comments按钮进行提交,进入:
点击按钮submit Patch Set1,将代码合并到远程分支。
12.合并到主线master
git checkout master 切换到本地master;
git pull origin 分支名 ;拉回分支下的更新 (git fetch + git merge)
git push 合并到远程主线master (.git/config 下不配置的话默认提交到远程master)
11分支部分
$ git branch 查看本地分支
$ git branch -r 查看远程分支
$ git branch [name] 创建本地分支 ----注意新分支创建后不会自动切换为当前分支
$ git checkout [name] 切换分支
$ git checkout -b [name] 创建新分支并立即切换到新分支
$ git branch -d [name] -d选项只能删除已经参与了合并的分支,对于未有合并的分支是无法删除的。如果想强制删除一个分支,可以使用-D选项
注:不能在当前分支下删除当前分支
$ git merge [name] --将名称为[name]的分支与当前分支合并 (合并分支)
$ git push origin [name] 创建远程分支(本地分支push到远程)
$ gitpush origin :[name] 删除远程分支
12.忽略一些文件,文件夹不提交
在仓库根目录下创建名称为“.gitignore”的文件,写入不需要的文件夹名或文件,每个元素占一行即可,如
target
bin
*.db
10删除代码
$ git rm 文件名(包括文件路径)
$ git commit -m “rm ” (现在本地版本库已经删除了)
$ git push (将删除操作同步到远程版本库)
Gerrit配置说明:http://www.doc88.com/p-674609491982.html