git 服务器软件一般常用的曾经是 gitosis, 不过 gitosis 从 2009年就没人维护了, 目前推荐的是使用 gitolite.
再 Ubuntu 上安装 gitolite 非常简单, 只需要再命令行输入
sudo apt-get install gitolite
就安装完成了. 比起之前的 gitosis 简单了不少.
管理 git 仓库, 和 apache 之类的软件一样, 也需要一个专门用户, 一般推荐使用 git 我们这里为系统添加一个叫 git 的用户, 输入
sudo adduser --system \
--shell /bin/bash \
--group \
--disabled-password \
--gecos 'git version control' \
--home /home/git \
git
这样就添加了一个叫 git 的用户, 他的主目录是 /var/git 也就是日后我们存放 git项目的地方.
首先需要上传一个管理员的 ssh 证书, 这里我把我当前用户的公钥匙传到服务器上 ( 生成 ssh 证书: ssh-keygen )
scp ~/.ssh/id_rsa.pub user@server:/tmp/admin.pub
这里的 user是服务器的用户名,server 是服务器地址, admin.pub 可以自行改名, 比如叫 sunteya.pub, 作用是再之后初始化 git 库的使用 默认的管理员用户, 如果叫 sunteya.pub 则管理员用户是 sunteya, 以此类推.
上传完证书以后, 我们切换到 git 用户, 准备初始化 gitolite
sudo -s
su git
接着输入
gl-setup /tmp/admin.pub
这里的 admin.pub 也根据你实际的上传的文件来输入, 接着按照提示就完成了 git仓库的搭建了( vi 编辑器部分:光标移到底部输入【:wq】然后再按回车键)
服务器端gitolite配置文件存放位置: /home/GITOLITE_USER/.gitolite/conf/gitolite.conf
服务器端gitolite用户公钥存放位置: /home/GITOLITE_USER/.gitolite/keydir/
再服务器搭建好 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仓库
----------------------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------------------
具体的可以访问 https://github.com/sitaramc/gitolite#readme 查看详细的配置写法, 然后 push 到服务器, 就可以添加或者管理git仓库了.