1.前期準備:
安裝Gerrit前的準備:Gerrit的安裝最好在ubuntu下進行,本人在紅帽系統安裝中遇到很多問題,接下來說說安裝Gerrit前要安裝的一些軟件,以及做的一些配置。
1.1 虛擬機的配置
Gerrit的使用要求虛擬機的連接方式爲橋接,並且虛擬機ip與本機ip要在同一網段上,虛擬機設置ip要使用root登陸,vi編輯/etc/network/interfaces,配置如圖1.1所示,address要改成與你本機同一網段的地址。
圖1.1
接下來要保證你的虛擬機可以連接網絡,vi編輯/etc/resolv.conf文件內容,加入nameserver 202.106.46.151。配置以上環境後,先測試虛擬機是否連上網絡,確保可連接網絡後再往下進行。
1.2 Linux以及本地下載git
linux終端輸入apt-get install git
在windows中安裝git(安裝包已上傳到我的CSDN資源中)。
1.3 linux下載mysql
終端輸入apt-get install mysql-server mysql-client
1.4 linux下載apache2
終端輸入apt-get install apache2
2 Mysql數據庫操作
CREATE USER 'gerrit'@'localhost' IDENTIFIED BY 'dhcc;
CREATE DATABASE reviewdb;
ALTER DATABASE reviewdb charset=latin1;
GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';
FLUSH PRIVILEGES;
3 安裝Gerrit
前期準備工作已經就緒,接下來安裝Gerrit,首先準備 gerrit-2.5.4.war 和bcprov-jdk16-144.jar,兩個文件我已經上傳到我的CSDN資源中。接下來創建專用賬號: adduser gerrit,將gerrit-2.5.4.war上傳到gerrit用戶根目錄,終端輸入java -jar gerrit-2.5.4.war init -d gerrit-site,按如圖3.1、圖3.2、圖3.3操作。
圖3.1
圖3.2
圖3.3
4 修改Gerrit配置
首先編輯gerrit-site/bin/gerrit.sh,在該腳本文件加入GERRIT_SITE=/home/gerrit/gerrit-site。之後vi編輯gerrit-site/etc/gerrit.config,做如圖4.1修改
圖4.1
5 配置apache反向代理
vi編輯/etc/apache2/httpd.conf,做如圖5.1修改,之後在gerrit根目錄下創建文件夾documents,之後輸入如下命令:
touch /home/gerrit/documents/passwords
htpasswd -m /home/gerrit/documents/passwords dhcc(dhcc是登陸服務器用戶名,之後會提示輸入密碼)
圖5.1
6 啓動服務
6.1 啓動gerrit
/home/gerrit/gerrit-site/bin/gerrit.sh start
6.2 apache開啓反向代理
sudo a2enmod proxy
sudo a2enmod proxy_ajp
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_ftp
sudo a2enmod mod_proxy_http
6.3 啓動Apache2:
apache2ctl start
7 配置服務器
在瀏覽器登錄:在瀏覽器中輸入虛擬機地址。
輸入用戶名密碼後,若出錯,重新登錄即可
7.1 設置full-name、郵箱
登陸之後,頁面顯示如圖7.1,點擊setting,contact information,在Full Name中填入名字,下邊的郵箱中填入你在安裝gerrit時設置的郵箱,之後登陸你的郵箱,複製類似下面的這句話,並在瀏覽器中打開, “10.1.5.10:8081/#/VE/1g+4dsZdBhm+0MfNeUG+3c2kLabNfXnXrD7TLg==$ODp0aWFuemhhbnhpYW9AZGhjYy5jb20uY24=”,如果打不開就在地址前面加 http://
圖7.1
7.2 添加公匙
打開我的文檔點擊右鍵點擊Git Bash,在對話框中輸入ssh-keygen獲取序列號,輸入後如圖7.2:
圖7.2
之後進入圖7.2中黃色字符的路徑,打開id_rsa.pub,複製所有內容;進入到服務器中點擊SSH Public Keys,粘貼,之後點擊ADD。
7.3 創建項目
如圖7.3點擊Project,輸入項目名稱,挑選Create inital empty commit之後點擊創建。
圖7.3
7.4 創建group
按如圖7.4、操作
圖7.4
7.5 設置工程權限:
如圖7.5點擊project,之後點擊list,再點擊你創建的項目
圖7.5
進如圖7.6,點擊Branches創建分支
圖7.6
之後點擊Acess設置工程權限如圖7.7,點擊Edit進行編輯
圖7.7
再點擊All-Projects進行如圖7.8的配置
圖7.8
8本地git配置
8.1本地克隆項目
打開本地git程序,輸入git clone ssh://用戶名@地址:端口/trunk_23.git
上述命令結束之後會在本地生成與項目名同名文件夾。
8.2設置本地的master跟蹤遠程master分支
$ git checkout -b master origin/master
這條命令即讓本地master分支跟蹤遠程倉庫origin中的master分支.
設置好更新後如果我們需要從遠程倉庫抓取數據,只需要運行$ git pull
即可。而本地數據變動後,要提交到遠程倉庫,則執行:$git push
8.3設置全局變量
git config --global user.email “email地址”
git config --global user.name “用戶名"
8.4創建別名
在當前目錄下的./ssh下創建config文件
Host 用戶名
Hostname 你的gerrit地址
Port 29418
User 用戶名
IdentityFile ~/.ssh/用戶名
8.5下載鉤子腳本
scp -r 用戶名: /gerrit-files
將gerrit-files/hooks下commit-msg複製到項目下的.git/hooks
目的: 使每個人提交的代碼都有一個唯一的change-id
8.6config設置
編輯.git/config如圖8.1所示
圖8.1
Push = HEAD:refs/for/wangbin (wangbin 是本地分支名) 這是該用戶要提交的路徑。
注:該本地分支在遠程版本庫中應該有對應的分支,創建分支詳見7.5
9測試
提交代碼到gerrit
$ echo first commit >welcome.txt
$ git addwelcome.txt (添加)
$ git commit -m “test”(提交)
$ git push
若提交成功,則會顯示如圖9.1內容,並且在服務器中可以在All,open中查看到提交的文件(如圖9.2),同時在設置的郵件中會收到相關郵件。
圖9.1
圖9.2