天天看點

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

git伺服器比較有名的是gitosis和gitolite,這兩個管理和使用起來稍微有些複雜,沒有web頁面,而gitlab則是類似于github的一個工具,github無法免費建立私有倉庫,并且為了代碼安全,于是在内網安裝了一個自己實驗室的一個git伺服器,多方比較,選擇了gitlab,gitlab有很多依賴,而bitnami制作了一鍵安裝的包,下載下傳連結:https://bitnami.com/redirect/to/37478/bitnami-gitlab-7.0.0-0-linux-installer.run ,使得安裝如此簡潔。

1.  安裝的過程中,會設定一個管理者賬戶,這個可以用來登陸,并且,gitlab的成員不能自己随便申請,需要管理者進行邀請;

2.  設定ssh,參見help:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

(1)檢視自己之前是否生成過ssh密鑰:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

cat ~/.ssh/id_rsa.pub  

如果出現一段ssh-rsa開頭的,表示已經生成了,可以跳過此步驟;

(2)如果之前沒有生成ssh密鑰,使用指令:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

ssh-keygen -t rsa -C "[email protected]"  

來生成密鑰。其中生成的檔案,id_rsa為自己電腦上的私鑰,id_rsa.pub為放在伺服器上驗證的公鑰。

(3)将ssh的公鑰放到gitlab上面,頁面如下所示:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

點選添加ssh key即可;

3. 工作流程,還是看gitlab的幫助文檔,如下所示:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

翻譯一下。。。

(1) 克隆管理者建立好的項目:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

git clone [email protected]:project-name.git  

(2)建立自己的本地分支(分支的命名采用小駝峰式命名法,使用自己的名字+功能,比如zyHighway,不要使用特殊字元):

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

git checkout -b $feature_name  

(3)寫代碼,将寫好的代碼送出到本地分支中:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

git commit -am "My feature is ready"  

(4)把分支push到Gitlab伺服器上:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

git push origin $feature_name  

(5)在Gitlab的送出頁面,檢視自己送出的代碼;

(6)送出一個合并請求;

(7)管理者稽核代碼,決定是否合并代碼到主分支上。

4. 分支模型

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

master分支中,保留足夠穩定的代碼,即已經釋出或者即将釋出的代碼; develop分支,用于後續開發,一旦通過穩定性測試,就合并到master分支中;在develop分支的基礎上,産生各個子產品分支,子產品功能實作之後,合并到develop分支上,測試穩定之後,再合并到master分支中。

5. 情景模拟

(1)管理者zhaoyu,建立一個項目vanet,并邀請huqiong加入,角色為開發者:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

(2)成員zhaoyu克隆項目,寫了一份代碼,并将寫好的代碼上傳至伺服器的zhaoyuHighway分支上:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

去送出頁面,發現已經建立了一個新的分支,并且可以向管理者送出合并請求,管理者關聯的郵箱會受到對應的郵件:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

浏覽一下送出的代碼:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

目前就到這裡,後期還會繼續更新。

附:

1. 伺服器怎麼關閉和啟動gitlab伺服器,并設為開機啟動項:

在安裝的目錄下有個檔案:ctlscript.sh,通過./ctlscript.sh start可以啟動,具體在README檔案中。

更改檔案權限:chown git:git ctlscript.sh 

添加對應指令到啟動檔案:/etc/rc.local中:./opt/gitlab-7.0.0-0/ctlscript.sh start

2. 修改git@domain_name中的domain_name

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

/home/git/gitlab/apps/gitlab/htdocs/config/gitlab.yml  

将兩處的host,修改成外網ip即可。

3. thinkserver安裝紅帽系統

采用thinkserver RD340來搭建伺服器,支援的作業系統有紅帽。 安裝系統先用自帶CD光牒引導/分區,再用系統CD光牒進行安裝,安裝好之後,重新開機會出現光标,注意這裡仍然需要插入安裝CD光牒,此時還沒有完成安裝。

在紅帽上安裝好系統之後,gitlab的通路速度非常慢,後來發現是網卡的問題,把網線重新插拔就好來。

時區設定,在地理位置那一欄一直找不到亞洲/上海,就把地理位置删除來,自己設定時間,這樣在網頁上顯示的一些時間就不會出錯來。

4. 資料遷移(ubuntu的7.1gitlab遷移到redhat的7.8)

待寫

5. 關于7.8.1的自由注冊

配置一下郵箱,就可以自動注冊了,但是這樣不便于團隊的保密工作,還是采用邀請的方式來注冊。

6. 将原來倉庫的代碼上傳到新的伺服器上,包括commit的記錄等log:

git伺服器gitlab之搭建和使用--灰常好的git伺服器【轉】

zy@zy:~/longmenshan/longmenshan$ git push -u origin master  

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  

@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @  

IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!  

Someone could be eavesdropping on you right now (man-in-the-middle attack)!  

It is also possible that a host key has just been changed.  

The fingerprint for the RSA key sent by the remote host is  

f9:46:83:46:cd:62:60:56:bb:df:19:c0:47:8d:b0:be.  

Please contact your system administrator.  

Add correct host key in /home/zy/.ssh/known_hosts to get rid of this message.  

Offending ECDSA key in /home/zy/.ssh/known_hosts:2  

  remove with: ssh-keygen -f "/home/zy/.ssh/known_hosts" -R 222.197.180.140  

RSA host key for 222.197.180.140 has changed and you have requested strict checking.  

Host key verification failed.  

fatal: Could not read from remote repository.  

參考:

1. gitlab多人協同工作:http://herry2013git.blog.163.com/blog/static/219568011201341111240751,原作者還制作了視訊教程,是不錯的參考資料;

2. 《pro Git中文版》,熟悉git常用操作和基本原理;

3.《Git 權威指南》,深入學習Git

本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/sky-heaven/p/5182448.html,如需轉載請自行聯系原作者

繼續閱讀