2

我有一个 Ubuntu 服务器并安装了 git 和 gitosis。我是服务器管理的新手,并且有以下 gitosis 文件夹树:/home/git/repositories

我通过将 gitosis-admin.git 克隆到我的本地计算机来编辑用户对不同存储库的权限,编辑gitosis.conf并将用户的公钥添加到 keydir 并将其推回服务器。这已经通过各种存储库和作品进行了测试。

我对描述如何使用 gitosis 创建可用于对 Web 域中的文件夹进行源代码控制的存储库的教程感到困惑。

我使用 SSH Putty 在 web 文件夹中创建了一个裸存储库;添加并提交文件给它。然后将其克隆到本地机器

git clone git(at)server:web_repo.git

这是成功的。

问题是当我尝试将它推回服务器时,会在 /home/git/repositories 路径中创建一个 repo,并且 web 文件夹 repo 不受影响。

我尝试结合以下信息:

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

http://urbanpuddle.com/articles/2008/07/11/installing-git-on-a-server-ubuntu-or-debian

http://danielmiessler.com/blog/using-git-to-maintain-your-website

http://toroid.org/ams/git-website-howto

http://www.ibm.com/developerworks/web/library/wa-git/

4

3 回答 3

1

了解您使用的 ubuntu 版本可能会有所帮助。Gitosis可能在 apt-get 存储库中,并且肯定在 Debian Lenny 中。根据我的经验,从存储库安装要干净得多。鉴于此软件可能存在安全问题,我强烈建议您使用 repo。但这取决于你。如果拉和推成功,这种方法没有害处。

当您使用 gitosis 推送到 git 存储库时,钩子(这post-update是您在此处需要的。)作为 gitosis 或 git 用户执行。我怀疑你的问题与此有关。您可能会考虑编写一个 suidpost-update挂钩,以便它可以作为您的用户帐户或作为网络编辑器或网络服务器用户执行。您可以交替chown -R git:git(或gitosis:gitosis根据您的设置)本地部署克隆。如果您必须在服务器上编辑这些存储库,请记住使用sudo -u git以正确用户身份进行任何更改。

于 2009-11-23T00:34:23.203 回答
0

根据您在评论中发布的内容,您的 shell 脚本已损坏,未设置 WORKDIR(该行是备注)

但是,我认为您的想法不是一个好主意(有一个例外:您尝试更新的是您的开发服务器)

于 2009-11-05T23:27:31.547 回答
0

您是否在 /home/git/repositories-repo 中设置了更新后挂钩,如http://danielmiessler.com/blog/上的“在从开发箱推送更改时启用自动更新”部分所述使用-git-to-maintain-your-website?这应该是将内容从中央存储库获取到实时克隆的技巧。为此,git 用户需要对实时克隆的写入权限。

于 2009-11-03T23:09:28.480 回答