我有一台Ubuntu服务器,并安装了git和gitosis。我是服务器管理的新手,并且有以下gitosis文件夹树:/home/git/repositories
我已经通过将gitosis admin.git克隆到我的本地计算机上,编辑了用户对不同存储库的权限,编辑了gitosis.conf,并将用户的公钥添加到密钥目录并将其推送回服务器。这已经在不同的存储库和工作中进行了测试。
我真的被这些教程弄糊涂了,这些教程描述了如何使用gitosis来创建一个存储库,该存储库可以用来对web域中的文件夹进行源代码控制。
我已经使用SSH Putty在web文件夹中创建了一个裸存储库;向其中添加并提交了文件。然后使用以下命令将其克隆到本地计算机
git clone git(at)server:web_repo.git这是成功的。
问题是,当我尝试将其推送回服务器时,在/home/git/repositories路径中创建了一个存储库,而web文件夹存储库不受影响。
我已经尝试合并来自以下内容的信息:
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/
发布于 2009-11-23 08:34:23
知道你使用的是什么版本的ubuntu可能会有所帮助。Gitosis可能在apt-get存储库中,当然也在Debian Lenny中。根据我的经验,从存储库安装要干净得多。考虑到这个软件中潜在的安全问题,我强烈建议使用repo。但这取决于你。如果拉动和推送成功,这种方法没有什么坏处。
当您推送到带有gitosis的git存储库时,钩子( post-update就是您在这里需要的)。是以gitosis或git用户身份执行的。我怀疑你的问题与此有关。您可以考虑编写一个suid post-update挂钩,这样它就可以作为您的用户帐户、web编辑器或web服务器用户执行。您也可以对本地部署克隆执行chown -R git:git (或gitosis:gitosis,取决于您的设置)。如果您必须在服务器上编辑这些存储库,请记住以适当的用户身份使用sudo -u git进行任何更改。
发布于 2009-11-04 07:09:28
您是否在/home/git/repositories-repo中设置了更新后挂钩,如http://danielmiessler.com/blog/using-git-to-maintain-your-website上的“在从您的开发工具箱推送更改时启用自动更新”-section中所述?这应该是将内容从中央存储库获取到实时克隆的诀窍。为此,git用户需要具有对活动克隆的写访问权限。
发布于 2009-11-06 07:27:32
根据您在评论中发布的内容,您的shell脚本已损坏,WORKDIR未设置(该行为备注)
但是,我并不认为这是一个好主意(有一个例外:您尝试更新的是您的开发服务器)
https://stackoverflow.com/questions/1661342
复制相似问题