【问题标题】:What kind of server do you use to host a Git repository?您使用哪种服务器来托管 Git 存储库?
【发布时间】:2011-08-24 14:10:13
【问题描述】:

这可能是可以想象到的最基本的 git 问题。

假设我开始一个项目并在我的 VPS 主机上为其创建一个 Git 存储库。

在 SVN 中,您可以运行 SVN 服务器,通过 Apache 提供 SVN,通过 ssh 连接到 repo。

Git 的类比是什么?我需要运行 Git 守护进程吗?有git:// 协议吗?

或者是在我的开发机器上我运行$ git xyz 命令并且它们通过 ssh 在后台进行通信?

(顺便说一句,我需要托管自己的存储库。GitHub 很棒,它不适合我的项目。)

如果重要的话,CentOS Linux 中的 VPS 机器和开发机器是 OS X。

【问题讨论】:

    标签: git


    【解决方案1】:

    托管 git repo 的最简单方法是通过 ssh。

    在您的服务器上,使用以下命令创建一个空存储库:

    cd my_project_folder
    git init --shared --bare
    

    在您的开发机器上,克隆空存储库并开始使用它。

    git clone username@myserver:my_project_folder
    

    其中 username 是您的 ssh 用户名,myserver 是您的服务器主机。

    现在您有了存储库的副本,添加文件并进行第一次提交,例如

    cd my_project_folder
    touch README
    git add README
    git commit -m'Initial Commit'
    git push origin master # push to your server
    

    如果您查看.git/config 文件,您会看到自动为您设置了一个“远程”主机,并指向您的服务器。

    【讨论】:

    • 除上述内容外,还可以使用 SSH 密钥,这样您就不必在每次推送或拉取时都输入密码。
    • 啊,我怀疑 ssh 可能是一个选项,因为它与 SVN 一样。
    【解决方案2】:

    如果您对远程计算机具有共享路径访问权限,那就足够了!
    一个简单的USB key can be enough,将远程仓库作为一个文件(一个“包”)。

    但是如果你有一个真正的远程服务器,那么你需要一个进程来监听你的 git 操作:

    请参阅Git protocols in the Pro Git Book

    Gitolite project 仅用于authorization (not authentication)
    它本身不监听任何请求(它将自己插入到 ssh 之上,或者可以从 Apache 配置中调用)。
    Gitolite 将允许您避免需要完整的交互式 ssh 会话,过滤所有命令并仅允许与 git 相关的命令,用于您拥有必要权限的存储库。

    【讨论】:

      【解决方案3】:

      在工作中,我们使用 Gitolite 作为私有 git 托管服务。

      它的作用是创建一个简单的服务器,可以在内部通过 ssh 访问。基本上,要访问远程存储库,您可以这样做:

      git clone gitolite@servername:project_name

      我可以推荐这本关于 git 的免费在线书籍:www.progit.org,特别是 gitolite 部分:http://progit.org/book/ch4-8.html

      【讨论】:

      • +1 - 问题中描述的用例和基础设施非常适合 gitolite。 NB:类似 gitolite 的项目 gitosis 似乎仍然吸引新用户,尽管已被废弃和过时。 Gitolite 是东西,不是 gitosis。
      • 谢谢。 Gitolite听起来很棒。但我认为这对我的情况来说可能是矫枉过正。看起来它适用于当您有一个复杂的项目并且您希望向不同的人和团体提供对其各个部分的不同访问权限时。我主要处理一个人和两个人的项目,不需要细粒度的访问控制。我认为只使用 ssh 可能就足够了。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-02
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 2014-10-18
      • 2011-10-04
      • 1970-01-01
      相关资源
      最近更新 更多