27

.git在本地机器上的目录中设置。然后我运行:

mkdir a
光盘
混帐初始化
git 守护进程

当我尝试在 中克隆存储库时a,出现以下错误:

mkdir b
光盘
git 克隆 git://127.0.0.1
在 /b/127.0.0.1/.git/ 中初始化空的 Git 存储库
致命:远端意外挂断

如何通过 git 协议克隆我的存储库?

4

2 回答 2

48

您需要git-daemon知道它可能会导出您的存储库:

$ git init --bare /tmp/my-repo.git
在 /tmp/my-repo.git/ 中初始化空的 Git 存储库

$ git daemon --verbose --base-path=/tmp --export-all /tmp/my-repo.git &

$ git clone git://`hostname`/my-repo.git
在 /tmp/my-repo/.git/ 中初始化空的 Git 存储库
警告:您似乎克隆了一个空存储库。

更好的方法是从xinetd. /etc/xinetd.d/git沿线创建和调整

# description: The git server offers access to git repositories
service git
{
        disable = no
        type            = UNLISTED
        port            = 9418
        socket_type     = stream
        wait            = no
        user            = nobody
        server          = /usr/local/bin/git
        server_args     = daemon --inetd --export-all --base-path=/pub/scm
        log_on_failure  += USERID
}

别忘了sudo killall -HUP xinetd/pub/scm现在,任何人都可以使用下面的所有 git 存储库。

于 2010-03-29T15:28:51.863 回答
14

您要么必须将一个名为的空文件git-daemon-export-ok放入存储库,要么从git daemon--export-all选项开始。

引用 git-daemon手册页

它验证目录是否有魔法文件“git-daemon-export-ok”,它会拒绝以这种方式导出任何没有明确标记为导出的git目录(除非指定了--export-all参数)。如果您将某些目录路径作为 git 守护程序参数传递,您可以进一步将这些提议限制为包含这些路径的白名单。

于 2010-03-29T15:38:46.920 回答