如何使用pull设置cgit并推送http?

时间:2012-04-17 11:52:54

标签: git http cgit

我正在尝试设置一个cgit实例,您可以从中推送或拉过http。但是,我可以通过cgit浏览我的repos over http,但当我尝试推送到这个repo时,我收到一个错误:

  

致命,/ info / refs无效,这是一个git存储库吗?

此路径存在于服务器上,这是一个空文件。我创建了一个更新后的钩子,它自动执行git update-server-info(来自repo的post-update.example)。 但是当我尝试通过http查看/ info / refs文件时,cgit有一个公告,这是一个空的存储库。

如何通过http访问此文件,我可以使用cgit提供给我的网址来推送或拉动?

我在共享主机提供商上有我的回购,所以我无权访问apache.conf但只能访问.htaccess文件......

2 个答案:

答案 0 :(得分:1)

据我所知,cgit无法推送到Git存储库(通过查看feature list)。

您可能需要设置类似git-http-backend的内容才能推送。 git-http-backend联机帮助页具有Apache 2.x的示例配置,用于使用经过身份验证的写入进行匿名读取,以及用于经过身份验证的读取和写入。

答案 1 :(得分:0)

如果您希望后端功能比git-http-backend更丰富,我建议使用gitolite。它有一些非常好的功能:

  • 在服务器上使用单个unix用户(“真实”用户)
  • 提供对许多gitolite用户的访问:
    • 他们不是“真正的”用户
    • 他们无法获得shell访问
  • 控制对许多git存储库的访问:
    • 在回购级别控制的读访问权
    • 在分支/标记/文件/目录级别控制的写入访问权限,包括谁可以回滚,创建和删除分支/标记
  • 可以在没有root访问权限的情况下安装,假设已经安装了git和perl
  • 身份验证通常使用sshd完成,但如果您愿意,也可以使用http(这可能需要root访问权限)
  • 将所有配置存储在admin git存储库中

这只是一些比较重要的功能。此外,使用您自己的脚本很容易扩展其行为。