31.4 创建新版本库

Gitosis维护的版本库位于安装用户主目录下的repositories目录中,即如果安装用户为git,则版本库都创建在/home/git/repositories目录之下。可以通过配置文件gitosis.conf修改默认的版本库的根路径。

可以直接在服务器端创建,或者在客户端远程创建版本库。

在客户端远程创建版本库时,Gitosis的原始实现是这样的:对版本库具有writable(读写)权限的用户,当对一个不存在的版本库执行克隆操作时会自动创建版本库,克隆即创建。但是我认为这不是一个好的实践,会经常因为在克隆时把URL写错,从而导致在服务器端创建垃圾版本库。笔者改进的实现如下:

增加了名为admin(或init)的授权指令,只有具有此授权的用户,才能够创建版本库。

只具有writable(或write)权限的用户,不能在服务器上创建版本库。

不是通过克隆创建版本库,而是在对版本库进行推送的时候创建。当克隆一个不存在的版本库时会报错退出。

远程在服务器上创建版本库的方法如下:

(1)首先本地建库。


$mkdir somerepo

$cd somerepo

$git init

$git commit—allow-empty


(2)使用git remote指令添加远程版本库。


$git remote add origin git@server:ossxp/somerepo.git


(3)运行git push完成在服务器端版本库的创建。


$git push origin master