教你如何使用Gerrit

教你如何使用Gerrit

前言:
基于上一篇博客《Gerrit服务器搭建》,现在开始教大家如何使用Gerrit(我用的是V2.10),对于没接触过服务器的我,研究起来真的费劲。之所以写这篇博客,是因为网上的那些文章很多细节问题没有写到,一方面给自己留笔记,其次分享给大家。

步入殿堂:

一、注册邮箱

注册邮箱

这里写图片描述

二、新建项目

新建项目

建好后点击List就能看到所有项目,JSQB是我新建的项目:
项目列表

三、克隆项目及拷贝commit_msg脚本至本地

前半部分是拷贝项目,后半部分是将commit-msg脚本拷贝至你本地的.git/hooks目录下。这个脚本的目的是在你提交的时候自动加上Change-Id。

拷贝项目

四、项目提交及推送

项目提交后不要直接推送,在终端输入:
git push origin HEAD:refs/for/branch

branch是你的项目分支,例如:
git push origin HEAD:refs/for/master

然后查看Gerrit,我这里的两条记录是已经经过审核并submit:
待审核

Question1:

如果你在提交代码前没有把commit-msg脚本下载下来,push时会出现这样的情况(missing or invalid Change-Id line format in commit message footer):

MacBook-Pro:JSQB GaoSir$ git push origin HEAD:refs/for/develop
Counting objects: 10, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (10/10), 781 bytes | 0 bytes/s, done.
Total 10 (delta 5), reused 0 (delta 0)
remote: Resolving deltas: 100% (5/5)
remote: Processing changes: refs: 1, done    
remote: ERROR: missing or invalid Change-Id line format in commit message foote
remote: Suggestion for commit message:
remote: 测试Gerrit2
remote: 
remote: 
remote: Change-Id: I
remote: 
remote: Hint: To automatically insert Change-Id, install the hook:
remote:   gitdir=$(git rev-parse --git-dir); scp -p -P 29418 admin@172.16.8.2:hooks/commit-msg ${gitdir}/hooks/
remote: 
remote: 
To http://172.16.8.2:8090/JSQB
 ! [remote rejected] HEAD -> refs/for/develop (missing or invalid Change-Id line format in commit message footer)
error: failed to push some refs to 'http://admin@172.16.8.2:8090/JSQB'

怎么办?

输入:
git reset --soft HEAD~1

回退到上次提交之前,然后重新copy脚本(钩子):
scp -p -P 29418 admin@172.16.8.2:hooks/commit-msg JSQB/.git/hooks/

再重新提交和推送。

Question2:

如果遇到:

no matching key exchange method found. Their offer: diffie-hellman-group1-sha1

在.ssh文件夹下的config文件中添加以下内容(如果没有,新建一个config文件,名字就叫config,没有后缀)

Host *
    KexAlgorithms +diffie-hellman-group1-sha1

五、设置权限

点击Projects-List,我这里用All-Projects做示例:
权限

点击Access-Edit:
权限

这里有多个Reference(如果你设置了权限但是没有生效,那你可能设置在不相关的Reference上了),我这里就先设置几个比较关键的:
权限

  • 代码审核:
    需+2 approved之后才算审核完全通过,进入下一阶段;

  • 代码通过:
    该权限下的用户如果verified了这次提交,那么进入下一阶段;

  • 代码提交:
    该权限下的用户可以进行submit,最终代码成功合入分支。

完了?

嗯,暂时到此为止,后续再完善,到现在饭都没吃。

  • 13
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Gerrit是一个用于代码审查和版本控制的工具,它的使用可以通过一系列步骤来完成。以下是一个简单的Gerrit使用教程: 1. 首先,你需要了解Gerrit的工作流程和权限控制。这可以通过阅读相关的文档和教程来获得大致的了解。你也可以参考一些博客文章,比如【GerritGerrit工作流程及使用手册。 2. 作为管理员,你可以通过命令行对Gerrit服务器进行操作。你可以使用如下命令连接到服务器ssh gerrit -l admin。连接成功后,你就可以对Gerrit进行各种管理操作了,比如添加普通成员。 3. 在使用Gerrit之前,你需要激活账号并生成SSH密钥。你可以在本地生成SSH密钥对,并将公钥配置到Gerrit服务器中。 4. 下载代码:在Gerrit的页面上,你可以浏览项目并进行查看。你可以使用过滤器来快速搜索你感兴趣的项目。找到你想要下载的项目后,可以点击浏览页面下的repositories进行查看。在这里,你可以选择下载代码。 5. 修改与提交:在本地进行代码修改后,你可以使用git命令将修改提交到Gerrit服务器。在提交后,Gerrit会为每次提交生成一个change id,并在Gerrit中生成一个review请求。 6. Gerrit页面进行代码审核并合并至远程分支:在Gerrit页面上,你可以对提交的代码进行审核。审核包括对代码质量、风格等方面的评审。如果审核通过,你可以将代码合并至远程分支。 7. 远程合并后本地需要git pull更新同步:在远程合并之后,你需要在本地使用git pull命令来更新同步。之后,你可以使用git log命令来查看更新后的代码。 以上是一个简单的Gerrit使用教程,希望对你有所帮助。如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值