我使用以下指南在我的 ubuntu 10.04 服务器上设置了一个带有 gitosis 的 git 存储库:
http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way
它工作得很好而且很漂亮,我可以将配置克隆到我的 ubuntu 10.10 台式计算机,并在那里提交更改。
没关系,但我在服务器上进行了大部分实际编码。所以我需要在本地克隆 configuration/gitosis-admin.git 存储库和其他存储库。
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”:权限被拒绝
然后,我尝试在服务器上创建一个公钥,并将其添加到 key 管理存储库中,将用户名添加为配置中的 (user) 和 (user)@(hostname) 到:
git clone git@localhost:gitosis-admin.git 或 git clone git@(hostname):gitosis-admin.git
两者都要求我输入 git@(hostname) 密码
当我回到我的桌面并查看 gitosis-admin 存储库时,gitosis.conf 列出了:
[gitosis]
[组 gitosis-admin]
可写 gitosis-admin
成员 = (desktopUN)@(desktopHostname) (serverUN)@(serverHostname)
但是在服务器上,如果我进入/home/git/repositories/gitosis-admin.git/和 cat gitosis.conf,它会列出
[gitosis]
[组 gitosis-admin]
可写 gitosis-admin
成员 = (desktopUN)@(desktopHostname)
我无法理解这一点,我该如何设置才能让它以我想要的方式工作。我很有可能在这一切背后有一些菜鸟咳嗽,但我已经花了 5 个小时试图让它现在工作,而且我需要 2 分钟来建立一个 svn repo 。所以我越来越不耐烦了..
谢谢
最佳答案
我想详细回答这个问题,因为我只需要使用 gitosis-admin 本地克隆来让其他人的安装正常工作。我认为其他用户可能会来这里寻求帮助以找出 如果您需要编辑 gitosis-admin 但只有对存储库所在文件系统的本地 root 访问权限,该怎么办。 如果这就是您到达这里的方式,那么您的直觉很好,因为您可以在本地克隆和编辑 gitosis-admin 存储库。但是,要使一切正常运行,您必须小心操作方式。以下是步骤:
前提条件:
$USER
gitosis-管理员访问; $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
关于Git:在本地克隆 gitosis admin repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4979170/