如何在局域網搭建git服務器


在創業公司,什么東西都要自己搞定,除了開發android系統和研究內核,還要自己來搭建一個代碼管理服務器。

其實搭建一個服務器非常簡單,尤其只需要在局域網內搭建,網上已經提供好了我們需要的一切。

 

服務器的搭建

首先我們需要一個裝有linux系統的計算機充當服務器,我這里是一台ubuntu12.04的系統。里面默認安裝了perl和bash作為shell。

然后需要安裝git-core,openssh-server等必備軟件,在ubuntu 安裝這些軟件比較方便。

sudo apt-get install git-core openssh-server

創建一個叫做git的用戶。創建步驟和可能出現的問題可以參見這里:http://lingavin.com/blog/2013/04/27/add-new-user/

 

gitolite3.0

安裝環境后,就可以使用gitlote來搭建一個服務器了。首先是下載gitolite源碼。網址是:https://github.com/sitaramc/gitolite

安裝這個軟件,首先要保證$HOME/bin文件夾存在,然后准備好客戶機的xxx.pub文件。

這里會涉及到一個問題,什么是xxx.pub和為什么需要用這個文件。xxx.pub是客戶端用sshkeygen生成的公鑰。至於為什么需要初始化的時候提供這個文件,那是因為初始化后,這個提供公鑰的客戶機將成為gitolite的管理員,在客戶機里管理各個版本庫,所以需要在初始化的時候提供。

版本庫的管理不會在服務器上直接操作,而是在客戶端,通過管理一個特殊的倉庫來操作。

具體步驟就是:

git cloen git://github.com/sitaramc/gitolite

#下面這一步其實是在/home/git/bin做了一個軟連接
gitolite/install -ln

export PATH=/home/git/bin:$PATH

gitolite setup -pk xxx.pub

完成了這幾步,服務器的設置就算完成了。

 

客戶端

客戶端需要保證的是能夠ping通服務器端,然后就是下載gitolite-admin這個倉庫。命令如下:

#請把host_ip替換為服務器的真實ip
git clone git@host_ip:gitloite-admin.git

可以發現clone下來的版本庫里面有兩個文件夾,分別是conf keydir

現在我們就通過添加一個開發者wang和添加一個倉庫android4_0_3.git來演示如何操作這兩個文件夾。

 

增加一個開發者

首先需要wang的公鑰,不會生成公鑰的話這里有個參考:https://help.github.com/articles/generating-ssh-keys

把wang的公鑰改名為wang.pub放到keydir文件中,然后git add git commit git push 收工。

 

增加一個倉庫

增加倉庫需要到conf目錄下,修改gitolite.conf

repo android4_0_3
	RW+		=	xxx
	RW		=	wang
	R		=	@all

加上上面內容,同樣是git add git commit git push 就可創建一個名叫android4_0_3的倉庫了。

其中這個版本庫賦予了不同人不同的權限。例如xxx用戶有讀寫權限和刪除等終極權限。而wang有讀寫權限和創建新分支的權限,但不可以刪除遠程版本。其他所有人則有讀的權限,也就是只要你知道倉庫,就可以clone下來。

 

開發者可以做的事情

你可以通過ssh git@host_ip info來查看你可訪問的版本庫以及其地址。

 

最后

上面這些信息都是通過http://gitolite.com/gitolite/master-toc.html來獲得的,其中還有很多內容和細節大家可以參考。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM