您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“如何搭建Git服務(wù)器”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“如何搭建Git服務(wù)器”吧!
搭建Git服務(wù)器需要準(zhǔn)備一臺(tái)運(yùn)行的Linux機(jī)器,強(qiáng)烈推薦用Ubuntu或Debian,這樣,通過(guò)幾條簡(jiǎn)單的apt命令就可以完成安裝。
假設(shè)你已經(jīng)有sudo權(quán)限的用戶賬號(hào),下面,正式開(kāi)始安裝。
第一步,安裝git:
$ sudo apt-get install git
第二步,創(chuàng)建一個(gè)git用戶,用來(lái)運(yùn)行g(shù)it服務(wù):
$ sudo adduser git
第三步,創(chuàng)建證書(shū)登錄:
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里,一行一個(gè)。
第四步,初始化Git倉(cāng)庫(kù):
先選定一個(gè)目錄作為Git倉(cāng)庫(kù),假定是/srv/sample.git,在/srv目錄下輸入命令:
$ sudo git init --bare sample.git
Git就會(huì)創(chuàng)建一個(gè)裸倉(cāng)庫(kù),裸倉(cāng)庫(kù)沒(méi)有工作區(qū),因?yàn)榉?wù)器上的Git倉(cāng)庫(kù)純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū),并且服務(wù)器上的Git倉(cāng)庫(kù)通常都以.git結(jié)尾。然后,把owner改為git:
$ sudo chown -R git:git sample.git
第五步,禁用shell登錄:
出于安全考慮,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過(guò)編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過(guò)ssh使用git,但無(wú)法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出。
第六步,克隆遠(yuǎn)程倉(cāng)庫(kù):
現(xiàn)在,可以通過(guò)git clone命令克隆遠(yuǎn)程倉(cāng)庫(kù)了,在各自的電腦上運(yùn)行:
$ git clone git@server:/srv/sample.git Cloning into 'sample'...warning: You appear to have cloned an empty repository.
剩下的推送就簡(jiǎn)單了。
如果團(tuán)隊(duì)很小,把每個(gè)人的公鑰收集起來(lái)放到服務(wù)器的/home/git/.ssh/authorized_keys文件里就是可行的。如果團(tuán)隊(duì)有幾百號(hào)人,就沒(méi)法這么玩了,這時(shí),可以用Gitosis來(lái)管理公鑰。
有很多不但視源代碼如生命,而且視員工為竊賊的公司,會(huì)在版本控制系統(tǒng)里設(shè)置一套完善的權(quán)限控制,每個(gè)人是否有讀寫(xiě)權(quán)限會(huì)精確到每個(gè)分支甚至每個(gè)目錄下。因?yàn)镚it是為L(zhǎng)inux源代碼托管而開(kāi)發(fā)的,所以Git也繼承了開(kāi)源社區(qū)的精神,不支持權(quán)限控制。不過(guò),因?yàn)镚it支持鉤子(hook),所以,可以在服務(wù)器端編寫(xiě)一系列腳本來(lái)控制提交等操作,達(dá)到權(quán)限控制的目的。Gitolite就是這個(gè)工具。
到此,相信大家對(duì)“如何搭建Git服務(wù)器”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。