Git:在本地克隆 gitosis admin repo

标签 git ubuntu gitosis

我使用以下指南在我的 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是有效用户。
  • gitosis-admin 存储库位于 $PATH . (在 Ubuntu 上,这通常是 /srv/gitosis/repositories/gitosis-admin.git )
  • $PATH归用户“gitosis”所有。

  • 脚步:
  • 如果他们还没有,请为您要授予 gitosis-admin 访问权限的用户生成一个 key 对。 sudo -H -u $USER ssh-keygen
  • 以 gitosis 用户身份制作 gitosis-admin 存储库的本地克隆。 sudo -H -u gitosis git clone $PATH
  • 添加新的公钥。 sudo -H -u gitosis cp ~$USER/.ssh/id_rsa.pub ./gitosis-admin/keydir/$USER.pub
  • 根据需要编辑 gitosis-admin conf。 sudo -H -u gitosis nano ./gitosis-admin/gitosis.conf
  • 作为 gitosis 用户提交。 sudo -H -u gitosis git commit -am "Adding $USER" ./gitosis-admin
  • 以 gitosis 用户身份推送。 sudo -H -u gitosis git push ./gitosis-admin
  • 以 gitosis 用户身份运行更新后 Hook 。 sudo -H -u gitosis GIT_DIR=$PATH $PATH/hooks/post-update
  • 关于Git:在本地克隆 gitosis admin repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4979170/

    相关文章:

    git - 确定几组(每组 25k 文件)之间的文件相似性

    git - 如何在 GitHub 上管理存储库

    ubuntu - 安装hadoop时如何修复 "Error: Could not find or load main class ” -Djava.library.path=.usr.local.hadoop.lib”

    ubuntu - 同步 FTP 和本地文件夹 - Ubuntu

    git - 我如何允许第二台/第三台/等等计算机使用 ssh 和 gitosis 连接到我的 git 服务器?

    git - 通过 ssh (gitosis) 访问 git repo 时如何包含 ssh 私有(private) rsa key ?

    git - 在 post-receive Hook 内执行推送到 github

    git - 如何撤消提交

    ubuntu - 将文件从我的电脑上传到 ubuntu 服务器

    linux - 在 Oracle Enterprise Linux 5 上安装 git 存储库 -- SSH 问题