Gerrit-使用指南

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Gerrit-使用指南相关的知识,希望对你有一定的参考价值。

参考技术A 登录 gerrit -> 激活邮箱 -> 获取并保存 http credentials(提交时要用)

后续 Push, Review, Verify, Submit, 接收通知 等都需要邮箱的支持。

http 方式 Pull, Push 时用。

Pull -> Commit -> Push(带上Change-Id)

BROWSE -> Repositories。

仓库地址在仓库详情页。

Attention

Pull 时选择 "Clone with commit-msg hook" 方式以便 拿到 commit-msg (.git/hooks/commit-msg) 。

确保 commit footer 有 Change-Id 信息。

Change-Id 可从通过 commit-msg (.git/hooks/commit-msg) 生成。

Strongly recommended:
只需确保项目目录(.git/hooks/)下有 commit-msg 脚本,再配合对应 的 gerrit 插件即可在 Commit 时完成 Change-Id 的自动生成。

Idea, Eclipse 都有相应的 gerrit 插件。

用于标识 commit。

Have a look

YOUR -> Changes -> 选择对应的 Change -> REPLY;

对于一些进阶操作或部分问题的处理,要求对 git 有一定的程度的深入了解。

rebase(变基), merge

对前一次 commit 进行微调(打补丁),不产生新的 Commit。

可简单理解为: pull = fetch + merge

参考文档 git reset

一些常见的问题及对应的解决方案。

此种情况多是由于 本地 git 配置 name, email 与 gerrit 账户名, 注册邮箱不符。

解决方案:查看并修改 git 配置属性 name, email

问题分析

这个提示表示没有新的提交。Gerrit审核根据commit
id和changeId来判断是否是新的提交。

情况一:如果确实需要提交,比如在初次建立新的分支的时候,两个分支的内容完全一模一样

解决办法:
通过git commit –amend生成新的changeId。

情况二: 合并时,合并的那些历史的 commit 节点,在 gerrit 上都已经评审过了,都是已有的 change 单,所以 gerrit 认为没有新的提交,就不让你提交评审。

解决办法:
在 git merge 的时候,加上 --no-ff 参数,是为了让它生成一个新的 commit,这样就可以提交了~(不过生成的 gerrit change 是看不到改动信息的

结合 Idea gerrit 插件的使用:

解决办法:

问题描述:相应分支挂起(可简单理解为分支状态异常)

解决方案:

在对应仓库下执行以下命令

以下是 rebase 方式(推荐)

以 gitlab 为例。

以管理员身份登录 gerrit -> 创建项目仓库 repo_demo -> 进入 gerrit_home/<git_dir> 以 gitlab 中同名项目覆盖之(即删除 repo_demo
-> 再从 gitlab 克隆同名项目)

以上是关于Gerrit-使用指南的主要内容,如果未能解决你的问题,请参考以下文章

Gerrit使用简介

Gerrit REST API使用实例

gerrit的使用以及问题总结

Gerrit-使用指南

Gerrit管理帐号

Gerrit 使用教程