Gerrit使用篇-提交代码,合并代码
2017-06-19 20:46
281 查看
前言
在使用gerrit之前,必须对git有一定的熟悉,Gerrit安装篇介绍了怎么安装Gerrit,这篇会简单介绍下Gerrit如何使用,下面这张图是Gerrit的生命周期
下面做个比较:
下图是一个普通的git
下图是gerrit
仔细比较:gerrit多了一个”PendingChange”,这部分是做Code Review的,然后管理员verify之后,PendingChange代码就会合并到Git仓库了。
1.完整配置
点击Settings,选择Contact Informations,点击右边的Register New Email,如下图我注册了一个通知邮件这样有状态变化或者需要审核代码,就会接收到通知。
点击左边的”SSH Public Keys”,添加需要key,如何获取这个key,可以通过以下方式:
1) 如果不存在~/.ssh/id_rsa.pub文件,则通过下面命令生成
2)通过下面命令获取key
cat ~/.ssh/id_rsa.pub
然后把这个key复制,像下面一样:
点击“add”按钮,添加成功
2.创建project
需要登录管理员账号(第一个登录的账号就是管理员账号,当然你也可以使用管理员账号设置其他账号为管理员),点击Projects,选择最后一个菜单 “Create New Project”,如下图一般情况创建的新工程都会继承与”All-Projects”,如下图:
点击”Create Project”按钮,创建成功之后,就可以在Projects的List列表看到了,如下图:
3.提交代码
点击我们上面创建的HelloGerrit工程,你会看到下面这样的界面:选中”clone with commit-msg hook”和”ssh”,会得到下面这样一个路径:
拷贝上面的路径到git-bash里执行
我们试下按照正常的使用git的方式commit和push代码,如下:
上面错误告诉我们:这个账号没有权限把代码直接提交到git仓库,这就是gerrit的精髓了,关于gerrit是怎么工作的,可以看下前言部分。
接下来,我们就需要配置账号可以提交到”PendingChange”了,
git config remote.origin.push refs/heads/*:refs/for/*
然后我们看下git push之后就怎么样
在浏览器打开上面的那个网址“http://192.168.1.3:9080/129”,内容很丰富
4.审核代码
添加Reviewer添加的Reviewer绑定的邮箱会收一个通知邮件:
OK,接下来,审核者打开网页,阅读代码,比如其中的一个类文件
接下来审核者有两种选择
1)如果发现代码有问题或者不符合规范,他可以点击”Abandon Change”
这样,提交代码的人会收到一个邮件通知
因为在提交者的git log,这个被拒绝的提交仍然存在,所以需要去除这个提交的log,通过重置到上一个提交就可以了
git reset c7ad7f432ead7289685df6a4fd53cf0c2dd63c91
然后重新提交就可以了。
2)审核通过
审核者,点击“Review”,出现下面选择
需要注意:每个提交只有满足了”+2”和”verified”才能submit合并到master分支。
我们注意到了这里没有 显示“verified”,所以我们需要去开启这个功能,
因为“HelloGerrit”的权限集成自“AllProjects”,所以对“AllProject”的Access进行修改
因为我们正在修改的是refs/heads/*,所以滑动到这个位置,添加相应权限,比如我已经添加好的
接下来看下,回到之前的地方,点击“review”按钮,如下图
需要注意几点:
1)合并代码需要Code-Review的”+2”和Verified的”+1”才能使用合并功能
2)CodeReview的所有选项和Verified的所有选项可以根据团队配置来分配,也可以都由一个人来做。一般情况:CodeReview的+1/-1对应初级审核,+2/-2对应更上一级审核;Verified就是合并之前的确认的。
这里,我自己选择CodeReview的”+2”和Verfied的“+1”,然后点击“Submit Patch set 1”成功了,可以看到代码已经合并了
接下来就可以团队其他成员就可以用
git pull拉取代码
5.gerrit可以当做普通的git使用
其实Gerrit也可以像普通的git一样使用,只不过我们需要先修改一些权限, 还是像上面一样打开权限列表,见下图:我们给“Administrators”分组添加了直接push的权限,这个分组下面的所有成员都可以像git一样使用gerrit,如果之前使用下面的命令修改了git push
git config remote.origin.push refs/heads/*:refs/for/*
在把gerrit当成普通git使用之前,需要做如下修改
git config remote.origin.push master
如下图是修改之后像普通的git一样提交代码:
总结
不知道安装gerrit,可以看下我之前写的Gerrit安装篇,以后有时间会根据实际项目使用,来继续补充gerrit使用。你也可以链接到下面三个地方深入学习gerrit1)using gerrit
2)gerrit-review
3)gerrit tutorial
相关文章推荐
- 关于git中cherry-pick的使用,选择一部分提交的代码合并到另一个分支
- CM: 使用gerrit,提交代码到CM
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- 在VS2010 中使用subversion 进行代码的分支与合并
- Git使用、Git配置、Git提交代码、Git上传
- [翻译]一步步教你配置SQL SERVER合并复制(八)代码部分(使用.NET CompactFramework)
- Eclipse使用EGit插件 把本地代码提交到远程仓库
- asp.net mvc4 使用 System.Web.Optimization 对javascript和style的引入、代码合并和压缩的优化(ScriptBundle,StyleBundle,Bundling and Minification )
- Ubuntu下使用git提交代码至GitHub
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- 一、git工具使用手册--提交代码
- Using NuGet without committing packages to source control(在没有把包包提交到代码管理器的情况下使用NuGet进行还原 )
- Git使用笔记(一)提交代码
- VS2010使用.net 4.0中的ASP.NET MVC 2 模板建立工程后无法提交HTML代码解决方案一则
- git使用补丁方式进行软件代码提交
- 使用git合并多个提交
- .net mvc4 使用 System.Web.Optimization 对javascript和style的引入、代码合并和压缩的优化(ScriptBundle,StyleBundle,Bund
- git使用补丁方式进行软件代码提交