我使用以下指南在我的ubuntu 10.04服务器上设置了一个带gitosis的git repo: http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
它工作正常,花花公子,我可以将配置克隆到我的ubuntu 10.10台式计算机,并在那里提交更改。
多数民众赞成好,但我在服务器上完成了大部分实际编码。所以我需要在本地克隆配置/ gitosis-admin.git repo和其他repos。
git clone --local file:///home/git/repositories/gitosis-admin.git给了我: 致命:'/ home /git/repositories/gitosis-admin.git'似乎不是一个git存储库 致命:远程端意外挂断
我将我的服务器用户添加到组git并得到: 致命:未能打开'/home/git/repositories/gitosis-admin.git/objects':权限被拒绝
然后我尝试在服务器上创建公钥,并将其添加到密钥admin repo中,在配置中将用户名(用户)和(用户)@(主机名)添加到: git clone git @ localhost:gitosis-admin.git或git clone git @(hostname):gitosis-admin.git 这两个都要求我提供git @(主机名)密码
当我回到我的桌面,并查看gitosis-admin repo时,gitosis.conf列出:
[Gitosis的]
[集团gitosis-admin]
可写的gitosis-admin
members =(desktopUN)@(desktopHostname)(serverUN)@(serverHostname)
但在服务器上,如果我根目录到/home/git/repositories/gitosis-admin.git/和cat gitosis.conf,它会列出
[Gitosis的]
[集团gitosis-admin]
可写的gitosis-admin
members =(desktopUN)@(desktopHostname)
我无法理解这一点,我如何设置它以使其按照我想要的方式工作。在这一切背后我有一些菜鸟咳嗽的可能性很大,但是我花了5个小时试图让它现在起作用,我需要2分钟来设置一个svn回购。所以我变得不耐烦了..
由于
答案 0 :(得分:2)
我想详细解答这个问题,因为我只需要使用gitosis-admin本地克隆来让其他人的安装正常工作。我认为其他用户可能会来这里寻求帮助,找出如果你需要编辑gitosis-admin怎么办,但只能对repos所在的文件系统进行本地root访问。如果你有这样的话在这里,你的直觉很好,因为你可以在本地克隆和编辑gitosis-admin存储库。但是,为了使一切运转起来,你必须要小心你的工作方式。以下是步骤:
前提条件:
$USER
gitosis-admin访问权限; $USER
是有效用户。$PATH
。 (在Ubuntu上,这通常是/srv/gitosis/repositories/gitosis-admin.git
)$PATH
归用户“gitosis”所有。步骤:
sudo -H -u $USER ssh-keygen
sudo -H -u gitosis git clone $PATH
sudo -H -u gitosis cp ~$USER/.ssh/id_rsa.pub ./gitosis-admin/keydir/$USER.pub
sudo -H -u gitosis nano ./gitosis-admin/gitosis.conf
sudo -H -u gitosis git commit -am "Adding $USER" ./gitosis-admin
sudo -H -u gitosis git push ./gitosis-admin
sudo -H -u gitosis GIT_DIR=$PATH $PATH/hooks/post-update
答案 1 :(得分:1)
您需要在服务器上添加用户的ssh公钥以gitosis或将ssh私钥从桌面复制到服务器上的用户并使用它。
对不起,我有点撇开了这个问题。你是怎么安装gitosis的?我记得有一个常见问题,在安装过程中,gitosis-admin repo中的必需挂钩未设置为可执行。因此,它在推送到时不会更新配置。
此外,您应该只通过SSH而不是通过本地文件系统访问使用gitosis托管的repos,但您似乎已经考虑过这部分。
此外,如果你不知道,gitosis是不受维护和弃用的,而不是gitolite。