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:

(1)查看自己之前是否生成過ssh密鑰:
- cat ~/.ssh/id_rsa.pub
cat ~/.ssh/id_rsa.pub
如果出現一段ssh-rsa開頭的,表示已經生成了,可以跳過此步驟;
(2)如果之前沒有生成ssh密鑰,使用命令:
- ssh-keygen -t rsa -C "zy901002@gmail.com"
ssh-keygen -t rsa -C "zy901002@gmail.com"
來生成密鑰。其中生成的文件,id_rsa為自己電腦上的私鑰,id_rsa.pub為放在服務器上驗證的公鑰。
(3)將ssh的公鑰放到gitlab上面,頁面如下所示:

點擊添加ssh key即可;
3. 工作流程,還是看gitlab的幫助文檔,如下所示:

翻譯一下。。。
(1) 克隆管理員建立好的項目:
- git clone git@example.com:project-name.git
git clone git@example.com:project-name.git
(2)創建自己的本地分支(分支的命名采用小駝峰式命名法,使用自己的名字+功能,比如zyHighway,不要使用特殊字符):
- git checkout -b $feature_name
git checkout -b $feature_name
(3)寫代碼,將寫好的代碼提交到本地分支中:
- git commit -am "My feature is ready"
git commit -am "My feature is ready"
(4)把分支push到Gitlab服務器上:
- git push origin $feature_name
git push origin $feature_name
(5)在Gitlab的提交頁面,查看自己提交的代碼;
(6)提交一個合並請求;
(7)管理員審核代碼,決定是否合並代碼到主分支上。
4. 分支模型

master分支中,保留足夠穩定的代碼,即已經發布或者即將發布的代碼; develop分支,用於后續開發,一旦通過穩定性測試,就合並到master分支中;在develop分支的基礎上,產生各個模塊分支,模塊功能實現之后,合並到develop分支上,測試穩定之后,再合並到master分支中。
5. 情景模擬
(1)管理員zhaoyu,新建一個項目vanet,並邀請huqiong加入,角色為開發者:

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

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

瀏覽一下提交的代碼:

目前就到這里,后期還會繼續更新。
附:
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
在安裝時,需要設定domain_name, 我這里設置成我的公網的ip,如果沒有設置好的話,可以參考帖子:點擊打開鏈接 ,修改文件:
- /home/git/gitlab/apps/gitlab/htdocs/config/gitlab.yml
/home/git/gitlab/apps/gitlab/htdocs/config/gitlab.yml
將兩處的host,修改成外網ip即可。
3. thinkserver安裝紅帽系統
采用thinkserver RD340來搭建服務器,支持的操作系統有紅帽。 安裝系統先用自帶光盤引導/分區,再用系統光盤進行安裝,安裝好之后,重啟會出現光標,注意這里仍然需要插入安裝光盤,此時還沒有完成安裝。
在紅帽上安裝好系統之后,gitlab的訪問速度非常慢,后來發現是網卡的問題,把網線重新插拔就好來。
時區設定,在地理位置那一欄一直找不到亞洲/上海,就把地理位置刪除來,自己設定時間,這樣在網頁上顯示的一些時間就不會出錯來。
4. 數據遷移(ubuntu的7.1gitlab遷移到redhat的7.8)
待寫
5. 關於7.8.1的自由注冊
配置一下郵箱,就可以自動注冊了,但是這樣不便於團隊的保密工作,還是采用邀請的方式來注冊。
6. 將原來倉庫的代碼上傳到新的服務器上,包括commit的記錄等log:
- 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.
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.
參考帖子:點擊打開鏈接 將之前的known_hosts中的記錄刪掉即可。
參考:
1. gitlab多人協同工作:http://herry2013git.blog.163.com/blog/static/219568011201341111240751,原作者還制作了視頻教程,是不錯的參考資料;
2. 《pro Git中文版》,熟悉git常用操作和基本原理;
3.《Git 權威指南》,深入學習Git
http://blog.csdn.net/zy416548283/article/details/38057925
