gerrit3使用教程

环境搭建使用gerrit+ldap的方式,gerrit账号为管理员预设。

登录

右上角点击sign in
image.png
输入账号密码
image.png

设置ssh 公钥

生成密钥对

在开发主机上生成ssh密钥对,如果已经有了可以直接使用 cat ~/.ssh/id_ed25519.pub

ssh-keygen -t ed25519 -C "your_email@example.com"
cat ~/.ssh/id_ed25519.pub
将公钥填入gerrit
image.png

image.png

clone 代码到本地

找到需要clone的仓库

image.png

选择ssh的方式,并且一定要使用 Clone with commit-msg hook 的方式,否者无法生成Change-ID,造成提交失败

image.png

配置git

# 将对应信息改为自己的
git config --global user.name "gerritadmin"
git config --global user.email "admin@example.com"

提交代码

创建自己的分支
root@node-33:~/code/upms# git branch 
* master
# 创建自己的分支前确保master已更新
root@node-33:~/code/upms# git pull
Already up-to-date.
# 创建一个自己的本地分支
root@node-33:~/code/upms# git checkout -b mybranch
Switched to a new branch 'mybranch'

开发完成之后,提交到gerrit上

# 本地commit
git status  # 查看修改的文件
git add <修改的文件>
git commit -m "this is a demo"
git log  #查看提交记录
# push 之前先更新master,然后将自己的分支与master分支对齐
git fetch origin master:master
git rebase master  # rebase之后可能会有冲突,需要解决解决冲突(解决冲突见后文)再push 
#提交到gerrit,for后面为要合并到的远端分支
git push origin HEAD:refs/for/master
为提交打patch

根据reviewer的评审意见,开发者进行修改并提交patch

# 修改代码
# 提交到本地
git status  # 查看修改的文件
git add <修改的文件>
git commit --amend  # 追加提交
# push 之前先更新master,然后将自己的分支与master分支对齐
git fetch origin master:master
git rebase master  # rebase之后可能会有冲突,需要解决解决冲突(解决冲突见后文)再push 

git push origin HEAD:refs/for/master

patch 成功后可以看到


image.png
解决冲突

当gerrit上的状体 Merge Conflict 时,需要进行此操作,或者当push 之前rebase master时也可能需要解决冲突。

// 更新分支
$ git fetch origin master:master

// do the rebase
$ git rebase origin/master
// 如有冲突,git status 可以看到哪些文件冲突了
// 解决冲突
...
$ git add <修改的冲突文件,git status 可以查看>

// continue the rebase
$ git rebase --continue

// 解决重提之后将新的patch 提交
$ git push origin HEAD:refs/for/dev

gerrit 评审

gerrit YOUR --> Changes


image.png
添加reviewer
image.png

image.png

使用 git-review 提交代码

https://www.jianshu.com/p/65a9c392ee25

reviewer评审

reviewer打分
-2 不能meger
-1 需要修改
+1 lgtm(look good to me),还需要其他人评审
+2 lgtm,评审通过,代码merge

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容