【问题标题】:What is git-daemon?什么是 git 守护进程?
【发布时间】:2012-03-17 10:51:16
【问题描述】:

什么是 git-daemon?它是默认的 git 函数吗?我试图理解这一点,以便我可以在服务器上托管一个存储库,人们可以从中推/拉。

到目前为止,我能够将“--bare”存储库克隆到 Apache 服务器上,然后使用“update-server-info”允许将存储库克隆给其他协作者。但是,这不会让协作者将他们的提交推送到“--bare”存储库。

我在“--bare”存储库中创建了“git-daemon-export-ok”文件,并运行了以下命令: “git-daemon --verbose /git”,但我收到一个错误:“git-daemon:找不到命令。”

任何帮助将不胜感激。

【问题讨论】:

    标签: git git-daemon


    【解决方案1】:

    man git-daemon 会告诉你很多信息(是的,它是 Git 自带的内置功能)。 Git 守护进程通过git daemon 运行(注意没有连字符)。

    但是,如果您打算在服务器上托管 Git 存储库,则应该查看 Gitolitesimilar

    此外,您为什么要克隆存储库以克隆该存储库,并将对其的任何推送转发到从中克隆它的存储库?只需从原始存储库克隆!

    【讨论】:

    • 与我一起工作的人不再希望将存储库托管在 Github 上。他们只希望在网络中使用它 :( 感谢您对 Gitolite 和 git-daemon 的建议。有很多选择,从 git-daemon 到 Gitosis 再到创建 SSH 服务器,我感到有点不知所措。(真的很希望我能只是简单地坚持 github)。我只是一个坚实的起点。任何原因当我尝试命令时:“git-daemon --base-path=”我收到错误“git-daemon : command not found ?”
    • Git 守护进程必须以git daemon (无连字符)运行,这与大多数 git 命令的工作方式不同,但我想这是因为发生了更复杂的内部事情。我已经更新了我的答案以反映这一点。
    • @AndrewMarshall:这并不是真正的离开。大多数或所有 git 命令都以git foo 调用,而不是git-foo。在 Ubuntu 上,git-* 命令——包括git-daemon——在/usr/lib/git-core 中(并由git 命令调用),但/usr/lib/git-core 通常不会在你的$PATH 中。我认为旧版本的git 可能表现不同。 (Windows 上的 MSYS git 可能不同;我目前没有安装它。)
    • @KeithThompson 我认为您对旧版本的看法是正确的,我记得 git-foo 变体在$PATH 中公开,它们似乎不再存在。我想这一点以及您可以编写任意 git-foo 和 git foo 的事实将exec it 导致我这么说。但是,唉,你是对的,内置函数现在位于 $PATH 之外。
    • 我正在阅读答案中提供的文档,它在描述下说:“这非常适合只读更新,即从 git 存储库中提取。”我还需要能够将提交推送到存储库。我想我会开始研究 Gitolite。
    【解决方案2】:

    在您的服务器上,在每个存储库中,例如 /opt/git/myrepository.git,都有一个配置文件。

    添加以下部分

    [daemon]
        uploadpack = true
        uploadarch = true
        receivepack = true
    

    来自the kernel.org page on git-daemon

    【讨论】:

      【解决方案3】:

      阅读https://www.kernel.org/pub/software/scm/git/docs/git-daemon.html你可以有更详细的了解

      至于问题git daemon not a git command你可以阅读这篇关于如何安装它的帖子。http://androidyue.github.io/blog/2013/09/10/install-git-daemon-on-fedora/

      希望对你有帮助。

      【讨论】:

        【解决方案4】:

        git daemon 也可用于迁移到其他服务提供商。

        1. 本地环境设置
        find PATH-TO-LOCAL-REPOSITORIES-ROOT -maxdepth 1 -mindepth 1 -type d -exec touch {}/.git/git-daemon-export-ok  \;
        git daemon --verbose PATH-TO-LOCAL-REPOSITORIES-ROOT/*
        
        1. 如果是 github,您必须将选择的存储库的存储库 url 放入 Import your project to GitHub 的形式中

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-09-12
          • 2012-07-07
          • 1970-01-01
          • 2017-10-28
          • 2016-03-18
          • 1970-01-01
          相关资源
          最近更新 更多