資源描述:
《Git入門(mén)書(shū)籍 Pro Git 書(shū)籍系列 25》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、4.8服務(wù)器上的Git-GitoliteGitolite本節(jié)作為Gitolite的一個(gè)快速指南,指導(dǎo)基本的安裝和設(shè)置。不能完全替代隨Gitolite自帶的大量文檔。而且可能會(huì)隨時(shí)改變本節(jié)內(nèi)容,因此你也許想看看最新的版本。Gitolite是在Git之上的一個(gè)授權(quán)層,依托sshd或者h(yuǎn)ttpd來(lái)進(jìn)行認(rèn)證。(概括:認(rèn)證是確定用戶是誰(shuí),授權(quán)是決定該用戶是否被允許做他想做的事情)。Gitolite允許你定義訪問(wèn)許可而不只作用于倉(cāng)庫(kù),而同樣于倉(cāng)庫(kù)中的每個(gè)branch和tagname。你可以定義確切的人(或一組人)只能push特定的"refs"(或者bra
2、nches或者tags)而不是其他人。安裝安裝Gitolite非常簡(jiǎn)單,你甚至不用讀自帶的那一大堆文檔。你需要一個(gè)unix服務(wù)器上的賬戶;許多l(xiāng)inux變種和solaris10都已經(jīng)試過(guò)了。你不需要root訪問(wèn),假設(shè)git,perl,和一個(gè)openssh兼容的ssh服務(wù)器已經(jīng)裝好了。在下面的例子里,我們會(huì)用git賬戶在gitserver進(jìn)行。Gitolite是不同于“服務(wù)”的軟件--其通過(guò)ssh訪問(wèn),而且每個(gè)在服務(wù)器上的userid都是一個(gè)潛在的“gitolite主機(jī)”。我們?cè)谶@里描述最簡(jiǎn)單的安裝方法,對(duì)于其他方法,請(qǐng)參考其文檔。開(kāi)始,在你的
3、服務(wù)器上創(chuàng)建一個(gè)名為git的用戶,然后以這個(gè)用戶登錄。從你的工作站拷貝你的SSH公鑰(也就是你用ssh-keygen默認(rèn)生成的~/.ssh/id_dsa.pub文件),重命名為.pub(我們這里使用scott.pub作為例子)。然后執(zhí)行下面的命令:$gitclonegit://github.com/sitaramc/gitolite$gitolite/install-ln#assumes$HOME/binexistsandisinyour$PATH$gitolitesetup-pk$HOME/scott.pub最后一個(gè)命令
4、在服務(wù)器上創(chuàng)建了一個(gè)名為gitolite-admin的Git倉(cāng)庫(kù)。最后,回到你的工作站,執(zhí)行g(shù)itclonegit@gitserver:gitolite-admin。然后你就完成了!Gitolite現(xiàn)在已經(jīng)安裝在了服務(wù)器上,在你的工作站上,你也有一個(gè)名為gitolite-admin的新倉(cāng)庫(kù)。你可用通過(guò)更改這個(gè)倉(cāng)庫(kù)以及推送到服務(wù)器上來(lái)管理你的Gitolite配置。定制安裝默認(rèn)快速安裝對(duì)大多數(shù)人都管用,還有一些定制安裝方法如果你用的上的話。一些設(shè)置可以通過(guò)編輯rc文件來(lái)簡(jiǎn)單地改變,但是如果這個(gè)不夠,有關(guān)于定制Gitolite的文檔供參考。配置文件
5、和訪問(wèn)規(guī)則安裝結(jié)束后,你切換到gitolite-admin倉(cāng)庫(kù)(放在你的HOME目錄)然后看看都有啥:$cd~/gitolite-admin/$lsconf/keydir/$findconfkeydir-typefconf/gitolite.confkeydir/scott.pub$catconf/gitolite.confrepogitolite-adminRW+=scottrepotestingRW+=@all注意"scott"(之前用gl-setup命令時(shí)候的pubkey名稱)有讀寫(xiě)權(quán)限而且在gitolite-admin倉(cāng)庫(kù)里有一個(gè)同名
6、的公鑰文件。添加用戶很簡(jiǎn)單。為了添加一個(gè)名為alice的用戶,獲取她的公鑰,命名為alice.pub,然后放到在你工作站上的gitolite-admin克隆的keydir目錄。添加,提交,然后推送更改。這樣用戶就被添加了。gitolite配置文件的語(yǔ)法在conf/example.conf里,我們只會(huì)提到一些主要的。你可以給用戶或者倉(cāng)庫(kù)分組。分組名就像一些宏;定義的時(shí)候,無(wú)所謂他們是工程還是用戶;區(qū)別在于你使用“宏”的時(shí)候@oss_repos=linuxperlrakudogitgitolite@secret_repos=fenestrapea
7、r@admins=scott@interns=ashok@engineers=sitaramdilbertwallyalice@staff=@admins@engineers@interns你可以控制許可在”ref“級(jí)別。在下面的例子里,實(shí)習(xí)生可以push”int“分支。工程師可以push任何有"eng-"開(kāi)頭的branch,還有refs/tags下面用"rc"開(kāi)頭的后面跟數(shù)字的。而且管理員可以隨便更改(包括rewind)對(duì)任何參考名。repo@oss_reposRWint$=@internsRWeng-=@engineersRWrefs/t
8、ags/rc[0-9]=@engineersRW+=@admins在RWorRW+之后的表達(dá)式是正則表達(dá)式(regex)對(duì)應(yīng)著后面的push用的參考名字(ref)。