15

我最近尝试在 linux 机器上设置 git repo 并浪费了大约 10 个小时,完全没有结果。编译或类似的东西没有任何问题,这只是配置问题。2 小时后,我得到了 mercurial 来做我需要的一切:

  1. 公共回购
  2. 网页界面
  3. 具有每个用户权限的推/拉(不绑定到 linux 帐户)

我能看到的关于 git 的所有内容都假设您只是在本地运行它,使用 github 或者已经设置了所有内容。我要么没有寻找正确的关键字,要么没有或很少有关于该主题的信息。

我确实想尝试 git,但设置它是一种非常令人沮丧的体验。谁能指出这些方面有用的东西?

谢谢你!

4

2 回答 2

13

我相信(但我还没有尝试过)gitosis是为了:
更新:2011,我实际上已经部署了gitolite

  • 使托管存储git库更容易和更安全。它
  • 在一个用户帐户下管理多个存储库,使用 SSH 密钥来识别用户。
    最终用户不需要服务器上的 shell 帐户,他们将与一个不允许他们运行任意命令的共享帐户交谈。

我推荐的安装过程是从客户端帖子中完成的,以便在服务器上复制 gitolite 的完整安装:

(从客户端方法)从客户端安装到服务器

请记住:gitolite 管理授权,而不是身份验证(SSH):它可以在没有 SSH 的情况下使用,但它的自然部署是通过 SSH 和强制命令机制。(就像 gitosis 一样,但有更多功能)


gitosis 的旧参考资料:

这是一个分步教程

然后是本教程的一个应用程序:Gitosis — 使托管多个 Git 存储库变得可管理(对于 Mac)或在 Ubuntu 上安装 gitosis

其次:将用户添加到我们的安全 Git 设置中

完成:Git 子项目(因为您的 gitosis 服务器管理所有这些不同的 git 存储库)


对于真正的轻量级(cgi 服务器)公共 Git 存储库,您可以:

  • 设置一个git 服务器git-daemon;它将侦听端口 9418。默认情况下,它将允许访问任何看起来像 git 目录并包含魔术文件 git-daemon-export-ok 的目录。将一些目录路径作为 git-daemon 参数传递将进一步限制对这些路径的导出。
    您还可以将 git-daemon 作为 inetd 服务运行;
  • 使用 http 导出将新创建的裸 git 存储库放在 Web 服务器导出的目录中,并进行一些调整以向 Web 客户端提供他们需要的一些额外信息

以下是如何在Apache 服务器上执行此操作。


2010 年的文章“共享 git 存储库的 8 种方法”提到了授予对 Git 存储库的访问权限的所有可能性。

于 2009-03-06T21:31:02.520 回答
1

你可以做

git instaweb

如果你安装了lighttpd。不过,这只是 Web GUI。

于 2010-01-27T17:02:15.500 回答