Ubuntu下 git 服務器的搭建

Ubuntu下  git  服務器的搭建。 html

前幾天老師分配了一個任務 就是配置git服務器,來管理項目,搞弄了好幾天,在網上搜教程   搜案例的  可是寫的都很籠統,有的寫的很好  可是按照他們說的作又會出現各類各樣的問題。今天我抽空把我配置git服務器的詳細過程記錄下來,但願能幫助到你們。 python

搭建git服務器的4個步驟 git

1   配置服務器前的準備工做 github

首先ubuntu系統要聯網 安裝了git,openssh-server和openssh-client軟件,並檢測是否開啓。 web

rpm -qa | grep -i git (查看是否安裝git) ubuntu

sudo apt-get install git 服務器

sudo apt-get install openssh-server ssh

sudo apt-get install openssh-client socket

2   添加git 用戶 post

新加用戶git,該用戶將做爲全部代碼倉庫和用戶權限的管理者:

geiao@ubuntu :~$ sudo useradd -m git

geiao@ubuntu :~$ sudo passwd git

創建一個git倉庫的存儲點,而且設置權限使除了git之外的用戶對此目錄無任何訪問權限。

geiao@ubuntu :~$ sudo mkdir /home/pro_j

(創建個目錄,做爲存儲點。)

geiao@ubuntu :~$ sudo chown git:git /home/pro_j

(把pro_j的權限給 git)

geiao@ubuntu :~$ sudo chmod 755 /home/pro_j (將文件pro_j設置爲 rwxr_xr_x 除了git之外的用戶對此目錄無任何訪問權限)

3   安裝配置gitosis

初始化服務器的git用戶 能夠用cat ~/.gitconfig 查看

geiao@ubuntu :~$ git config --global user.name "your name"

geiao@ubuntu :~$ git config --global user.email your email

geiao@ubuntu :~$ cat ~/.gitconfig

[user] name = zhang mingjie

    email = Jghost@yeah.net

安裝一下python的setuptool,也是爲gitosis作準備:

geiao@ubuntu :~$ sudo apt-get install python-setuptools

得到gitosis包:

geiao@ubuntu :~$ mkdir osis

geiao@ubuntu :~$ cd osis

geiao@ubuntu :~/osis$ git clone git://eagain.net/gitosis.git

注意:執行上步驟會出錯

Cloning into gitosis...
eagain.net[0: 208.78.102.120]: errno=Connection refused
fatal: unable to connect a socket (Connection refused)

可以使用:git clone https://github.com/res0nat0r/gitosis.git代替

geiao@ubuntu :~/osis$ cd gitosis

geiao@ubuntu :~/osis/gitosis$ sudo python setup.py install 默認狀態下,gitosis會將git倉庫放在git用戶home下的repositories中,因此要作個連接: geiao@ubuntu :~/osis/gitosis$ su git

$ ln -s /home/pro_j /home/git/repositories

$ exit

成爲管理員:不管是否是本機均可以經過生成ssh公鑰的方法成爲管理員

geiao@ubuntu :~$ ssh-keygen -t rsa 生成的密鑰能夠經過在~/.ssh 文件中找到。

在服務器上建管理員:

geiao@ubuntu :~/osis/gitosis$ sudo chmod a+r ~/.ssh/id_rsa.pub

[sudo] password for geiao:

讓gitosis運行起來:

geiao@ubuntu :~/osis/gitosis$ sudo -H -u git gitosis-init< ~/.ssh/id_rsa.pub

Initialized empty Git repository in /home/pro_j/gitosis-admin.git/

Reinitialized existing Git repository in /home/pro_j/gitosis-admin.git/

若是在另外的一臺機子上建管理員,必須把那臺機子的公鑰(更名)拷到服務器上 而後修改上面劃線操做的地址就好了。

Gitosis 經過一個git倉庫管理配置文件,倉庫就放在/home/pro_j/gitosis-admin.git。所以要爲一個文件加上可執行權限:

geiao@ubuntu :/home/git$ sudo passwd root

geiao@ubuntu :/home/git$ su

root@ubuntu :/home/git# cd repositories

root@ubuntu :/home/git/repositories# cd gitosis-admin.git

root@ubuntu :/home/git/repositories/gitosis-admin.git# sudo chmod 755 /home/pro_j/gitosis-admin.git/hooks/post-update root@ubuntu :/home/git/repositories/gitosis-admin.git# exit

4   管理gitosis的配置文件

gitosis自己的配置也是經過git來實現的。在你本身的開發機裏,把gitosis-admin.git這個倉庫clone下來,就能夠以管理員的身份修改配置了。

geiao@ubuntu :~$ cd osis

geiao@ubuntu :~/osis$ mkdir pro

geiao@ubuntu :~/osis$ cd pro

geiao@ubuntu :~/osis/pro$ git clone git@服務器ip:gitosis-admin.git

geiao@ubuntu :~/osis/pro$ cd gitosis-admin

geiao@ubuntu :~/osis/pro/gitosis-admin$ ls

gitosis.conf keydir

gitosis.conf文件和keydir文件夾

gitosi.conf文件主要的做用是管理員能夠編寫其餘人的權限,能夠編寫對gitosis-admin的成員,也能夠編寫對倉庫的權限 :writable和 readonly . 這裏設置權限 能夠創建group設置。

keydir 文件夾是存放其餘人公鑰的地方。並且必須注意 誰的公鑰誰的名字的要求來存放。

geiao@ubuntu :~/osis/pro/gitosis-admin/keydir$ ls geiao@ubuntu.pub jghost.pub 不然在會出現:

ERROR:gitosis.serve.main:Repository read access denied

配置好後必定要作的操做事提交gitosis-admin的 改動,並commit 而後 git push 一下; 並且你不須要在服務器上建好一個空倉庫,再導入項目。 Gitosis會在你建好項目推送到服務器上時自動建立。 而後就能夠創建個項目 如proj.git(這點比較重要

geiao@ubuntu :~/osis/pro$ mkdir proj

geiao@ubuntu :~/osis/pro$ cd proj

geiao@ubuntu :~/osis/pro/proj$ git init

Initialized empty Git repository in /home/geiao/osis/pro/proj/.git/

geiao@ubuntu :~/osis/pro/proj$ touch README

geiao@ubuntu :~/osis/pro/proj$ git add README

geiao@ubuntu :~/osis/pro/proj$ git commit -a -m "add readme"

geiao@ubuntu :~/osis/pro/proj$ git remote add origin git@10.10.4.229:proj.git

geiao@ubuntu :~/osis/pro/proj$ git push origin master

到此, 在ubuntu上創建git服務器基本上完成。

至於gitweb   感興趣的 能夠參考這篇文章。

http://www.cnblogs.com/xl19862005/archive/2011/06/28/2092464.html


謝謝你們。

相關文章
相關標籤/搜索