環(huán)境搭建使用gerrit+ldap的方式,gerrit賬號(hào)為管理員預(yù)設(shè)。
登錄
右上角點(diǎn)擊sign in
image.png
輸入賬號(hào)密碼
image.png
設(shè)置ssh 公鑰
生成密鑰對(duì)
在開(kāi)發(fā)主機(jī)上生成ssh密鑰對(duì)焚廊,如果已經(jīng)有了可以直接使用 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的倉(cāng)庫(kù)
image.png
選擇ssh的方式,并且一定要使用 Clone with commit-msg hook 的方式忙干,否者無(wú)法生成Change-ID藐守,造成提交失敗
image.png
配置git
# 將對(duì)應(yīng)信息改為自己的
git config --global user.name "gerritadmin"
git config --global user.email "admin@example.com"
提交代碼
創(chuàng)建自己的分支
root@node-33:~/code/upms# git branch
* master
# 創(chuàng)建自己的分支前確保master已更新
root@node-33:~/code/upms# git pull
Already up-to-date.
# 創(chuàng)建一個(gè)自己的本地分支
root@node-33:~/code/upms# git checkout -b mybranch
Switched to a new branch 'mybranch'
開(kāi)發(fā)完成之后,提交到gerrit上
# 本地commit
git status # 查看修改的文件
git add <修改的文件>
git commit -m "this is a demo"
git log #查看提交記錄
# push 之前先更新master狈谊,然后將自己的分支與master分支對(duì)齊
git fetch origin master:master
git rebase master # rebase之后可能會(huì)有沖突喜命,需要解決解決沖突(解決沖突見(jiàn)后文)再push
#提交到gerrit沟沙,for后面為要合并到的遠(yuǎn)端分支
git push origin HEAD:refs/for/master
為提交打patch
根據(jù)reviewer的評(píng)審意見(jiàn),開(kāi)發(fā)者進(jìn)行修改并提交patch
# 修改代碼
# 提交到本地
git status # 查看修改的文件
git add <修改的文件>
git commit --amend # 追加提交
# push 之前先更新master壁榕,然后將自己的分支與master分支對(duì)齊
git fetch origin master:master
git rebase master # rebase之后可能會(huì)有沖突矛紫,需要解決解決沖突(解決沖突見(jiàn)后文)再push
git push origin HEAD:refs/for/master
patch 成功后可以看到
image.png
解決沖突
當(dāng)gerrit上的狀體 Merge Conflict 時(shí),需要進(jìn)行此操作牌里,或者當(dāng)push 之前rebase master時(shí)也可能需要解決沖突颊咬。
// 更新分支
$ 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 評(píng)審
gerrit YOUR --> Changes
image.png
添加reviewer
image.png
image.png
使用 git-review 提交代碼
http://www.reibang.com/p/65a9c392ee25
reviewer評(píng)審
reviewer打分
-2 不能meger
-1 需要修改
+1 lgtm(look good to me)贪染,還需要其他人評(píng)審
+2 lgtm,評(píng)審?fù)ㄟ^(guò)催享,代碼merge