(二十四)搭建Git服務(wù)器

遠(yuǎn)程倉庫一節(jié)中,我們講了遠(yuǎn)程倉庫實(shí)際上和本地倉庫沒啥不同虏两,純粹為了7x24小時開機(jī)并交換大家的修改蒸辆。

GitHub就是一個免費(fèi)托管開源代碼的遠(yuǎn)程倉庫治拿。但是對于某些視源代碼如生命的商業(yè)公司來說,既不想公開源代碼捷绑,又舍不得給GitHub交保護(hù)費(fèi)韩脑,那就只能自己搭建一臺Git服務(wù)器作為私有倉庫使用。

搭建Git服務(wù)器需要準(zhǔn)備一臺運(yùn)行Linux的機(jī)器粹污,強(qiáng)烈推薦用Ubuntu或Debian段多,這樣,通過幾條簡單的apt命令就可以完成安裝壮吩。

假設(shè)你已經(jīng)有sudo權(quán)限的用戶賬號进苍,下面,正式開始安裝鸭叙。

第一步觉啊,安裝git:

$ sudoapt-getinstall git

第二步,創(chuàng)建一個git用戶沈贝,用來運(yùn)行g(shù)it服務(wù):

$ sudoadduser git

第三步杠人,創(chuàng)建證書登錄:

收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub文件宋下,把所有公鑰導(dǎo)入到/home/git/.ssh/authorized_keys文件里嗡善,一行一個。

第四步学歧,初始化Git倉庫:

先選定一個目錄作為Git倉庫罩引,假定是/srv/sample.git,在/srv目錄下輸入命令:

$ sudogit init --bare sample.git

Git就會創(chuàng)建一個裸倉庫撩满,裸倉庫沒有工作區(qū),因?yàn)榉?wù)器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務(wù)器上去改工作區(qū)伺帘,并且服務(wù)器上的Git倉庫通常都以.git結(jié)尾昭躺。然后,把owner改為git:

$ sudochown -R git:git sample.git

第五步伪嫁,禁用shell登錄:

出于安全考慮领炫,第二步創(chuàng)建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd文件完成张咳。找到類似下面的一行:

git:x:1001:1001:,,,:/home/git:/bin/bash

改為:

git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell

這樣帝洪,git用戶可以正常通過ssh使用git,但無法登錄shell脚猾,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動退出葱峡。

第六步,克隆遠(yuǎn)程倉庫:

現(xiàn)在龙助,可以通過git clone命令克隆遠(yuǎn)程倉庫了砰奕,在各自的電腦上運(yùn)行:

$git clone git@server:/srv/sample.gitCloninginto'sample'...warning:Youappear to have cloned an empty repository.

剩下的推送就簡單了。

管理公鑰

如果團(tuán)隊(duì)很小提鸟,把每個人的公鑰收集起來放到服務(wù)器的/home/git/.ssh/authorized_keys文件里就是可行的军援。如果團(tuán)隊(duì)有幾百號人,就沒法這么玩了称勋,這時胸哥,可以用Gitosis來管理公鑰。

這里我們不介紹怎么玩Gitosis了赡鲜,幾百號人的團(tuán)隊(duì)基本都在500強(qiáng)了空厌,相信找個高水平的Linux管理員問題不大。

管理權(quán)限

有很多不但視源代碼如生命蝗蛙,而且視員工為竊賊的公司蝇庭,會在版本控制系統(tǒng)里設(shè)置一套完善的權(quán)限控制,每個人是否有讀寫權(quán)限會精確到每個分支甚至每個目錄下捡硅。因?yàn)镚it是為Linux源代碼托管而開發(fā)的哮内,所以Git也繼承了開源社區(qū)的精神,不支持權(quán)限控制壮韭。不過北发,因?yàn)镚it支持鉤子(hook),所以喷屋,可以在服務(wù)器端編寫一系列腳本來控制提交等操作琳拨,達(dá)到權(quán)限控制的目的。Gitolite就是這個工具屯曹。

這里我們也不介紹Gitolite了狱庇,不要把有限的生命浪費(fèi)到權(quán)限斗爭中惊畏。

小結(jié)

搭建Git服務(wù)器非常簡單,通常10分鐘即可完成密任;

要方便管理公鑰颜启,用Gitosis

要像SVN那樣變態(tài)地控制權(quán)限浪讳,用Gitolite缰盏。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市淹遵,隨后出現(xiàn)的幾起案子口猜,更是在濱河造成了極大的恐慌,老刑警劉巖透揣,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件济炎,死亡現(xiàn)場離奇詭異,居然都是意外死亡淌实,警方通過查閱死者的電腦和手機(jī)冻辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拆祈,“玉大人恨闪,你說我怎么就攤上這事》呕担” “怎么了咙咽?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長淤年。 經(jīng)常有香客問我钧敞,道長,這世上最難降的妖魔是什么麸粮? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任溉苛,我火速辦了婚禮,結(jié)果婚禮上弄诲,老公的妹妹穿的比我還像新娘愚战。我一直安慰自己,他們只是感情好齐遵,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布寂玲。 她就那樣靜靜地躺著,像睡著了一般梗摇。 火紅的嫁衣襯著肌膚如雪拓哟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天伶授,我揣著相機(jī)與錄音断序,去河邊找鬼流纹。 笑死,一個胖子當(dāng)著我的面吹牛违诗,可吹牛的內(nèi)容都是我干的捧颅。 我是一名探鬼主播,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼较雕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了挚币?” 一聲冷哼從身側(cè)響起亮蒋,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妆毕,沒想到半個月后慎玖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡笛粘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年趁怔,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片薪前。...
    茶點(diǎn)故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡润努,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出示括,到底是詐尸還是另有隱情铺浇,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布垛膝,位于F島的核電站鳍侣,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吼拥。R本人自食惡果不足惜倚聚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望凿可。 院中可真熱鬧惑折,春花似錦、人聲如沸矿酵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽全肮。三九已至敞咧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間辜腺,已是汗流浹背休建。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工乍恐, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人测砂。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓茵烈,卻偏偏與公主長得像,于是被迫代替她去往敵國和親砌些。 傳聞我的和親對象是個殘疾皇子呜投,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 1. 安裝 Github 查看是否安裝git: $ git config --global user.name "...
    Albert_Sun閱讀 13,645評論 9 163
  • 在遠(yuǎn)程倉庫一節(jié)中,我們講了遠(yuǎn)程倉庫實(shí)際上和本地倉庫沒啥不同存璃,純粹為了7x24小時開機(jī)并交換大家的修改仑荐。 GitHu...
    13c9acfa5878閱讀 258評論 0 0
  • 在遠(yuǎn)程倉庫一節(jié)中,我們講了遠(yuǎn)程倉庫實(shí)際上和本地倉庫沒啥不同纵东,純粹為了7x24小時開機(jī)并交換大家的修改粘招。 GitHu...
    蕭非子閱讀 710評論 0 50
  • GitHub就是一個托管代碼的遠(yuǎn)程倉庫。但是對于某些公司項(xiàng)目來說偎球,既不想公開源代碼洒扎,又舍不得給GitHub交私有倉...
    小小奶狗閱讀 428評論 0 3
  • 我討厭酒的味道,卻愛上醉的感覺衰絮!喝酒是一種感情的宣泄袍冷,偶爾喝醉是一種心靈上的解壓。有人說猫牡,不用香水的人难裆,是沒有味道...
    舊鄉(xiāng)里的少年郎閱讀 191評論 0 0