本文讲解ubuntu 14.04中如何自己搭建git仓库,亲测可行。

一、创建Git用户。
1、安装git-core、python-setuptools、openssh-server、openssh-client(python-setuptools主要用于安装gitosis。后两个软件主要是为了方便使用Putty直接登录到服务器)

sudo apt-get install git-core python-setuptools openssh-server openssh-client

2、创建git用户并初git用户的始化密码

sudo useradd -m git
sudo passwd git

3、建立git用户使用的目录

sudo mkdir /home/repo
sudo chown git:git /home/repo

二、安装Gitosis软件。
1、安装Gitosis(为了统一管理,下边我会把几个重要的文件放在我建立的Tools目录中进行安装配置。)

mkdir Tools
cd Tools
git clone git://eagain.net/gitosis
(如果克隆失败用下面的地址)
git clone https://github.com/res0nat0r/gitosis.git

cd gitosis/
sudo python setup.py install
(切换到git用户)
su git 
(软链接目录)
ln -s /home/repo /home/git/repositories

2、生成管理员ssh公钥 ,并拷贝到服务器。
(在这里我是直接使用的服务器作为管理员,使用其他服务器原理一样)

ssh-keygen -t rsa
 (直接回车即可)
 cp /home/XXX/.ssh/id_rsa.pub /tmp
 (尽量使用git用户拷贝,防止下一步初始化时读取不了公钥。)

ubuntu 安装软件仓库 配置ubuntu软件仓库_git

其他用户作为管理员可以直接用优盘拷贝公钥到服务器或者直接通过命令拷贝

scp .ssh/id_rsa.pub git@<ServerIP>:/tmp
(此方法直接是使用的git用户拷贝。ServerIP为你的Git服务器ip。)
(如:scp .ssh/id_rsa.pub git@192.168.1.102:/tmp)

3、初始化Gitosis,让你的管理员公钥生效(在Git服务器上进行)。

sudo -H -u git gitosis-init < /tmp/id_rsa.pub

ubuntu 安装软件仓库 配置ubuntu软件仓库_版本库_02

三、配置Gitosis、建立第一个属于自己的Git版本库。
1、使用管理员机器克隆Gitosis配置库(前边上传的谁的公钥谁就是管理员,后续也可以添加。)

git clone git@localhost:gitosis-admin.git

ubuntu 安装软件仓库 配置ubuntu软件仓库_ubuntu 安装软件仓库_03

2、服务器中建立“test.git”版本库
(GIt版本库统一在/home/git/repositories目录下,文件夹一定要以“.git”结尾

(切换到git用户)
su git 
(建立版本库“test.git”)
cd ~/repositories
mkdir test.git
(初始化test.git版本库)
cd test.git
git init --bare

3、管理员机器中配置“test.git”版本库。

cd gitosis-admin/
(gitosis.conf为配置文件、keydir为公钥文件夹)
vim gitosis.conf

ubuntu 安装软件仓库 配置ubuntu软件仓库_git_04

配置完毕提交配置信息

(公钥的命令一定要和公钥的名字一样,如下:后边的就是你的公钥名字,此时公钥的命名就为XXX.pub)

ubuntu 安装软件仓库 配置ubuntu软件仓库_服务器_05

git add gitosis.conf
 git commit -am "添加“test.git”版本库。"

第一次提交会让你填写你的身份


ubuntu 安装软件仓库 配置ubuntu软件仓库_ubuntu 安装软件仓库_06

git config --global user.email "你的邮箱@XXX.com"
 git config --global user.name "你的名字"
 (再次填写commit信息)
 git commit -am "添加“test.git”版本库。"
 git push origin master

四、测试第一个属于自己的Git版本库。

git clone git@localhost:test.git
 cd test
 echo "HelloWorld" > HelloWorld
 git add HelloWorld
 git commit -am "第一个提交记录"
 git push origin master

ubuntu 安装软件仓库 配置ubuntu软件仓库_git_07