遠端倉庫實際上和本地倉庫沒啥不同,純粹為了7x24小時開機並交換大家的修改。
搭建git伺服器非常簡單,通常10分鐘即可完成
ubuntu下面的
第一步,安裝:
$ sudo apt-get install git
第二步,建立乙個git
使用者,用來執行git
服務:
$ sudo adduser git
git使用者,要設定個密碼
第三步,建立證書登入:
su git
如果目錄不存在在就執行
ssh-keygen
收集所有需要登入的使用者的公鑰,就是他們自己的id_rsa.pub
檔案,把所有公鑰匯入到/home/git/.ssh/authorized_keys
檔案裡,一行乙個。
cat id_ras.pub >> authorized_keys
注意authorized_keys
檔案許可權為git
第四步,初始化git倉庫:
先選定乙個目錄作為git倉庫,假定是/srv/
sample.git
,在/srv
目錄下輸入命令:
$ su
dogit init
--bare sample.git
git就會建立乙個
裸倉庫,裸倉庫
沒有工作區
,因為伺服器上的git倉庫純粹是為了共享,所以不讓使用者直接登入到伺服器上去改工作區,並且
伺服器上的git倉庫通常都以.git
結尾
。然後,把owner改為git
:
sudo chown -r git:git sample.git
禁用shell登入
改為:git使用者不允許登入shell,這可以通過編輯/etc/passwd
檔案完成。找到類似下面的一行:
git:
x:1001
:1001
:,,,:/home/git
:/bin/bash
git:
x:1001
:1001
:,,,:/home/git
:/usr/bin/git-shell
最後一步:
現在,可以通過git clone
命令轉殖遠端倉庫了,在各自的電腦上執行:
$ git clone git@server
:/srv/sample.git
如果團隊很小,把每個人的公鑰收集起來放到伺服器的/home/git/.ssh/authorized_keys
檔案裡就是可行的。如果團隊有幾百號人,就沒法這麼玩了,這時,可以用gitosis來管理公鑰。
這裡我們不介紹怎麼玩gitosis了,幾百號人的團隊基本都在500強了,相信找個高水平的linux管理員問題不大。
有很多不但視源**如生命,而且視員工為竊賊的公司,會在版本控制系統裡設定一套完善的許可權控制,每個人是否有讀寫許可權會精確到每個分支甚至每個目錄下。因為git是為linux源**託管而開發的,所以git也繼承了開源社群的精神,不支援許可權控制。不過,因為git支援鉤子(hook),所以,可以在伺服器端編寫一系列指令碼來控制提交等操作,達到許可權控制的目的。gitolite就是這個工具。
這裡我們也不介紹
gitolite
了,不要把有限的生命浪費到許可權鬥爭
中。
1. 使用者home目錄755許可權 rwx r-x r-x 2. .ssh目錄700許可權 700=rwx --- --- 3. authorized_keys 600許可權 rx- --- ---
ubuntu搭建git伺服器
1.安裝git sudo apt install git2.建立git使用者 sudo adduser git3.建立證書檔案 收集所有需要登入的使用者的公鑰,公鑰位於id rsa.pub檔案中,把我們的公鑰匯入到 home git ssh authorized keys檔案裡,一行乙個。如果沒有該...
Ubuntu搭建Git伺服器
ubuntu搭建git伺服器 本文將重點介紹ubuntu 下git伺服器的搭建,以及git伺服器搭建常見異常解決方案。首先,需要在ubuntu中安裝git daemon,安裝命令如下 plain sudo apt get install git daemon run 安裝好git daemon後,需...
git之ubuntu搭建git伺服器(一)
參考文章 廖雪峰老師關於git的教程 sudo apt get install gitsudo adduser gitsudo mkdir home git ssh sudo touch home git ssh authorized keys sudo chmod 644 home git ssh...