尝试在我的Archlinux上配置gitosis时遇到了一些问题
http://wiki.archlinux.org/index.php/Setting_Up_Git_ACL_Using_gitosis
我参考了这篇wiki文章并成功安装了gitosis.
$ sudo pacman -U gitosis-git-20090525-1-i686.pkg.tar.gz
$ sudo -H -u gitosis gitosis-init
并修改了/srv/gitosis/.ssh/authorized_keys以包含我本地用户的id_rsa.pub.
但是当我git clone
作为本地用户运行时,
$ git clone gitosis @ host:gitosis-admin.git
它说
/home/wyx/gitosis-admin/.git/gitosis@10.132.140.73密码中初始化的空Git存储库:*****
致命:'gitosis-admin.git'似乎不是一个
致命的git存储库:远程端意外挂断了
所以git clone操作失败了.我想知道为什么它试图在我的本地用户的目录(/ home/wyx)中初始化一个空的git存储库?既然我已经在.ssh/authorized_keys中添加了本地用户的id_rsa.pub,为什么还要求输入密码呢?
创建了一个空的存储库,因为这就是git的工作方式:它必须先启动一个repo才能开始将远程对象拉入其中.不幸的是,这意味着您必须在再次尝试克隆之前手动删除空仓库.
至于克隆失败的原因,看起来你的远程存储库路径使用了错误的语法; git clone
不使用scp语法.事实上,如果你没有指定克隆协议,我相信它假设git协议而不是ssh,这可能就是它要求你输入密码的原因.试试这个:
$ git clone ssh://gitosis@host/~/gitosis-admin.git
我也面临同样的问题"致命:'/ gitosis-admin.git'似乎不是一个有效的存储库." 我搜索了很多问题,最后找到了解决方案.
实际上,gitosis用户的默认地址是"/ srv/gitosis":如我的设置有ubuntu服务器10.04.
当我们写"git clone gitosis@server.com:gitosis-admin.git"时,它会搜索/ srv/gitosis中的gitosis-admin.git存储库.所以当我进入/ srv/gitosis时,我发现其中有另一个存储库,名为存储库,由gitosis-admin.git存储库组成.
所以实际上默认情况下gitosis-admin.git不在默认位置.所以我必须修改命令路径然后它工作正常.
我将存储库克隆到我的本地计算机上.我用这个命令:
"git clone gitosis@server.com:repositories/gitosis-admin.git",它对我来说很好.
请参阅您的案例中的gitosis-admin目录,我希望您能够解决您的问题.
这就解决了我的问题(在Ubuntu上):
git clone gitosis@ns.home:/srv/gitosis/repositories/gitosis-admin.git