Total Pageviews

Saturday, 26 March 2016

在debian vps上搭建 git 仓库服务器

安装 gitolite

git 服务器软件一般常用的曾经是 gitosis, 不过 gitosis 从 2009年就没人维护了, 目前推荐的是使用 gitolite.
再 Ubuntu 上安装 gitolite 非常简单, 只需要再命令行输入
apt-get install gitolite
就安装完成了. 比起之前的 gitosis 简单了不少.

初始化 gitolite

设置 git 用户

管理 git 仓库, 和 apache 之类的软件一样, 也需要一个专门用户, 一般推荐使用 git 我们这里为系统添加一个叫 git 的用户, 输入
adduser --system \
 --shell /bin/bash \
 --group \
 --disabled-password \
 --gecos 'git version control' \
 --home /var/git \
 git
这样就添加了一个叫 git 的用户, 他的主目录是 /var/git 也就是日后我们存放 git项目的地方.

初始化 git 仓库

首先需要上传一个管理员的 ssh 证书, 这里我把我当前用户的公钥匙传到服务器上(如过不知道怎么生成 ssh 证书请 google)
scp ~/.ssh/id_rsa.pub root@server:/tmp/admin.pub
这里的 server 是服务器地址, admin.pub 可以自行改名, 比如叫 sunteya.pub, 作用是再之后初始化 git 库的使用 默认的管理员用户, 如果叫 sunteya.pub 则管理员用户是 sunteya, 以此类推.
上传完证书以后, 我们切换到 git 用户, 准备初始化 gitolite
su - git
接着输入
gl-setup /tmp/admin.pub
这里的 admin.pub 也根据你实际的上传的文件来输入, 接着按照提示就完成了 git仓库的搭建了

管理和添加项目

再服务器搭建好 gitolite 就可以通过他的 gitolite-admin 项目来管理 git仓库了. 我们可以输入
git clone git@server:gitolite-admin.git
取出管理项目, 这时候我们可以看到 gitolite-admin 目录下有
conf/gitolite.conf
keydir/admin.pub
其中 keydir 用于管理用户, 每一个 keydir 下的文件就是一个用户. 另外我们查看 conf/gitolite.conf
repo    gitolite-admin
        RW+     =   admin

repo    testing
        RW+     =   @all
可以看到默认帮我们建了一个叫 testing 的库, 我们可以编辑 conf/gitolite.conf 来添加或者删除 git仓库, 具体的可以访问 http://sitaramc.github.com/gitolite/doc/gitolite.conf.html 查看详细的配置写法, 然后 push 到服务器, 就可以添加或者管理git仓库了.

question:为什么我,su - git 切换的时候还是被要求输入密码,关键是我没设密码.
answer:那是因为 你当前用户不是 root.
是 root 就不需要密码了
另外你可以 sudo su - 切换到 root 用户