環境:git
Gerrit Server:172.16.206.133 es6
Client:172.16.206.129shell
一、在Gerrit服務器上建立用戶vim
Gerrit服務器使用的是HTTP認證類型,並用httpd作反向代理,建立用戶使用如下命令瀏覽器
#cd /home/gerrit2/gerrit/etcbash
[root@localhost etc]# htpasswd -m passwords user2服務器
New password: dom
Re-type new password: yii
Adding password for user user2ssh
根據提示輸入密碼便可(密碼設置爲123456),這樣帳號就建立好了。建立完成,httpd和gerrit服務不須要重啓。
二、登陸gerrit用戶
用建立的user2帳號訪問gerrit,在瀏覽器地址欄輸入:
輸入登陸的帳號密碼,帳號爲user2,密碼爲123456
三、修改gerrit用戶配置
登陸後,在網頁右上角點擊本身的用戶名,在點擊「settings」。
settings中就是用戶的配置相關信息,須要註冊郵箱和提交服務器上的公鑰
一、提交公鑰
注意:爲何要提交公鑰文件到gerrit服務器?若是不提交公鑰,則不能使用git push命令將本地代碼提交到gerrit服務器。公鑰是一個認證方式。
在客戶端172.16.206.129這臺服務器上建立公、私鑰對,具體命令以下:
生成的密鑰文件以下:
[user2@host2 ~]$ ls .ssh/
id_rsa id_rsa.pub
id_rsa.pub爲公鑰文件,將該文件中的內容,複製並粘貼到settings==>SSH Public Keys中,並點擊Add
測試SSH key是否提交成功,在client 172.16.206.129服務器上執行如下命令:
#ssh -p 29418 user2@172.16.206.133
29418爲gerrit上SSH服務器監聽的端口,user2爲登陸的gerrit帳號,注意這裏咱們使用哪一個帳號登陸gerrit就使用哪一個帳號測試,而且該帳號已經登陸了gerrit服務器,並且公鑰已經上傳。172.16.206.133爲gerrit服務器的IP
能夠看到鏈接成功,說明SSH Public Key上傳成功。
爲user2註冊郵箱
點擊Register後,登陸你剛纔註冊的郵箱,激活便可。
四、建立用戶組並建立一個項目
注意,只有管理員組的用戶才能建立group和Project
登陸Gerrit管理員帳號admin,建立一個新的組爲group2。並將user2帳號加入該組
新建一個Project,名爲Project2
五、gerrit代碼審覈流程
前面都是準備工做,接下來演示gerrit如何作代碼審覈的
a、client server( 172.16.206.129)的git初始配置
配置用戶名和郵箱
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
b、用帳戶user2登陸gerrit
在Projects==> List中找到Projects2,而後點擊Clone with commit-msg hook, 在點擊ssh按鈕,
複製ssh下面項目地址:
直接將剛纔複製的命令,在client server的命令行運行
注意:步驟b必定選Clone with commit-msg hook下面的地址來clone,不然在客戶端使用git push
命令提交代碼時會報錯。若是不須要向gerrit服務器提交代碼,那麼你只需使用
git clone ssh://user2@172.16.206.133:29418/Project2
或者git clone http://user2@172.16.206.133:8081/a/Project2
c、建立一個文件,並提交到gerrit服務器端
用git add 和git commit命令將文件保存到git倉庫中
d、用git push命令將代碼從本地傳到gerrit服務器對象項目下的master分支
origin:遠程倉庫的名稱,用git remote 能夠查看全部的遠程倉庫名稱
e、用user2帳號登陸Gerrit Web UI,邀請管理員admin來作code review。
注意:以前忘記截圖了,因此下圖不是原圖,可是基本上都同樣,只有Owner和Project不對而已。
Add:添加指定用戶來進行Code Review
Cherry Pick:切換分支,當執行push操做以後若是發現分支不對,須要切換,能夠在這裏點擊Cherry Pick按鈕進行分支切換操做。
Abandon:撤銷push操做,當push以後,若是發現代碼有問題,須要修改,能夠點擊這個按鈕,而後修改代碼,修改完成後,再次push,而後登錄Gerrit Web UI,會有一個Restore按鈕,這時候點擊Restore,就能夠從新申請Code Review。
e、看看Gerrit服務器上是否有code review的信息
登陸gerrit管理員帳號admin,在ALL下面點擊「Open」,看到「建立了test.sh」這條記錄。
這裏「建立了test.sh文件」就是git commit -m "建立了test.sh文件" 這條命令產生的
點開這條記錄,看到如下信息
咱們能夠點開test.sh文件看到裏面的內容
還能夠看到提交者的信息:
這裏顯示的用戶名和郵箱地址實際上是在client server上初始化git時,用如下命令配置的
#git config --global user.name "user2"
#git config --global user.email "YOUR EMAIL-ADDRESS"
點擊上上圖中的code review和replay進行代碼審覈
-2 表示不經過,+2表示代碼ok能夠經過審覈,目前尚未深究這個,我理解的就是這樣子的。
審覈後能夠看到審覈的日誌
以上就是gerrit代碼審覈的流程,gerrit倉庫是純粹的代碼倉庫,不存在work tree這個說法。因此在gerrit倉庫裏面執行git命令都會報錯:
可是,若是用git clone將gerrit倉庫裏面的項目clone下來後,就自動變成了一個git倉庫。