Ubuntu server 搭建Git server,git相比svn,最主要就是分佈式了,每一個客戶端用戶的本地都是一個版本管理控制器。python
Ubuntu server 版本爲12.04git
搭建步驟以下:github
一、更新Ubuntu servershell
操做以下:bash
$ apt-get update服務器
$ apt-get upgradessh
如上命令更新並升級系統,防止在安裝git過程當中,出現部分依賴包沒有安裝。分佈式
二、安裝openssh的server和clientsvn
其實一般狀況下,Ubuntu server都默認安裝了openssh。安裝SSH的目的,SSH 協議用於爲 Git 提供遠程讀寫操做,是遠程寫操做的標準服務,ssh可用於遠程登陸,服務端須要安裝openssh-server,客戶端須要安裝openssh-client。介紹ssh協議是由於gitolite以及gitosis都是基於ssh公鑰認證的。工具
安裝openssh以前,能夠先查看是否安裝過
$ ps -ef | grep ssh
若是沒有,就繼續以下安裝步驟,
$ sudo apt-get install openssh-server openssh-client
三、安裝git
$ sudo apt-get install git-core
安裝完畢便可!
四、配置git用戶
在Ubuntu Server上新增一個git用戶,用於爲安裝gitosis作準備
$ sudo adduser --system --shell /bin/bash --group git // 建立用戶 git,並設置用戶的 shell 爲可登陸的 shell,如 /bin/bash,同時添加同名的用戶組。
$ sudo adduser git ssh // 有的系統,只容許特定的用戶組(如 ssh 用戶組)的用戶才能夠經過 SSH 協議登陸,這就須要將新建的 git 用戶添加到 ssh 用戶組中。
$ sudo passwd git // 爲 git 用戶設置口令。
$ ssh-copy-id git@server // 管理員在客戶端使用下面的命令,創建無口令登陸。
五、建立git Server的倉庫存儲
$ sudo mkdir /home/git/repositories // 建立git倉庫存儲目錄
$ sudo chown git:git /home/git/repositories // 設置只容許git用戶才能訪問此目錄
$ sudo chmod 755 /home/git/repositories // 設置目錄訪問的可讀寫或執行的權限
初始化一下服務器的git用戶,這一步實際上是爲了安裝gitosis作準備。在任何一 臺客戶端機器上使用git,第一次須要初始化一下:
$ git config --global user.name "name" // 例如:james
$ git config --global user.email "name@server" // 例如:james@yahoo.com
六、獲取Gitosis,並安裝
Gitosis 就是一套用來管理 authorized_keys
文件和實現簡單鏈接限制的腳本。簡單地說,Gitosis就是git的權限策略控制器。
由於Gitosis源碼安裝方式經過python方式,因此這裏要檢測是否安裝了python的setup tool,沒有即安裝此工具, 這個也是爲了gitosis作準備:
$ sudo apt-get install python-setuptools
去到一個臨時目錄
$ cd /tmp
$ git clone https://github.com/res0nat0r/gitosis.git // 下載Gitosis的源代碼
$ cd /tmp/gitosis
$ sudo python setup.py install
說明:Gitosis有一個改進的升級版Gitolite,這裏以安裝Gitosis爲標準,因此不對Gitolite介紹。Gitosis安裝完以後,即Git服務器就安裝完成,接下來,須要爲Git設置一個管理員,經過Gitosis初始化以後,才能正常使用Git做爲版本控制進行相關版本管理。
下一節,將詳細描述經過建立Git管理員來初始化Git Server,並詳細描述Git在Windows下做爲客戶端如何使用。