Gitlab、Github的Pull Request功能可以进行Code Review,但Gerrit更强大,可以搭配Jenkins、LDAP等在企业内部搭建完善的Code Review流程。这里记录下自己对其的了解,方便在工作中使用它。
安装
1 2 3 4 5 6 7 8 9 10 11
|
# 下载war包 wget https://gerrit-releases.storage.googleapis.com/gerrit-3.1.3.war
# 安装 java -jar gerrit*.war init --batch --dev --install-all-plugins -d ~/gerrit_testsite # —batch 默认使用一些配置 # —dev 开发环境 # -d 安装目录 # --install-all-plugins 安装插件
|
文件夹结构
- bin:命令存放目录
- cache:
- data:
- etc:配置文件保存目录
- gerrit.config:端口配置,反向代理配置,等等
- git:项目源码保存目录
- logs:日志文件存储目录
- plugins:插件存储目录
- static:
- tmp:
基本命令
1 2 3 4
| cd $GERRIT_SITE/bin gerrit.sh start gerrit.sh stop gerrit.sh restart
|
Gerrit配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| [gerrit] basePath = D:\\Program Files (x86)\\PortableGit\\bin serverId = c08372c6-a331-4dce-a236-f4c93211f236 canonicalWebUrl = http://192.168.40.8:7001/ # 访问地址 [database] type = mysql hostname = localhost database = gerrit username = root [index] type = LUCENE [auth] type = HTTP # 授权方式,可以使用HTTP的方式关联Apache、Nginx;也可以使用LDAP等 [receive] enableSignedPush = false [sendemail] smtpServer = localhost [container] user = PC074 javaHome = d:\\Program Files\\Java\\jdk1.8.0_121\\jre [sshd] listenAddress = *:123 # 端口绑定 [httpd] listenUrl = http://192.168.40.8:7001/ [cache] directory = cache
|
auth类型配置
反向代理配置
基本使用
第一个注册的用户是超级管理员,ID为1000000
使用基本流程:
- 创建账号,添加ssh公钥
- 配置仓库
- 给用户分配权限
- 创建Change
- push代码进行Review流程
开发者使用
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| # 拉取代码 git clone "ssh://xxx@xx.xxx.201.148:12304/All-Projects" && scp -p -P 12304 longsj@47.113.201.148:hooks/commit-msg "All-Projects/.git/hooks/"
# vim Readme.MD git add Readme.MD git commit -m "change xxx" # 推送修改,推送成功后gerrit后台会有change记录 git push origin HEAD:refs/for/HEAD # origin : 是远程的库的名字 # HEAD: 是一个特别的指针,它是一个指向你正在工作的本地分支的指针,可以把它当做本地分支的别名,git这样就可以知道你工作在哪个分支 # refs/for :意义在于我们提交代码到服务器之后是需要经过code review 之后才能进行merge的,for表示指向某个分支
|
参考