3

我正在尝试在我的本地局域网上设置一个 git repo,并且到目前为止能够克隆、拉取、获取等。不幸的是,当我尝试推送时,它会导致

致命:远端意外挂断。

系统日志显示:

git-daemon [10090]: 'receive-pack': 没有为'./www-dev/aptwebsite.git' 启用服务

经过一番研究,我认为我可以启用“receive-pack”,但我不知道如何。

当我尝试:

git daemon --reuseaddr --base-path=. --export-all --verbose --enable=receive-pack

我得到:

致命:无法在主机(空)端口 9418 上分配任何侦听套接字。

当我尝试

git receive-pack <working directory>

我得到:

0070000000000000000000000000000000000000000000 能力^{}报告状态删除参考边带64k ofs-delta 0000^C

有什么建议么?

4

1 回答 1

0

如果人们使用 git-daemon 遇到“远程端意外挂断”,一些提示可能会有所帮助。

1) git-daemon 上的 Git “How to”文档说“remote end hang up”消息是通用消息。您应该查看服务器日志以获取有关可能出现问题的更多信息。对于最初的设置,我还建议将 --informative-errors 切换到 git-daemon,这将对 git push 命令产生更有用的错误。

2)第二个问题是“无法在主机(空)端口 9418 上分配任何侦听套接字”。这是来自实现 git-daemon 的代码,即daemon.c。此代码有一个函数 socksetup(),当它在设置套接字时遇到问题时会生成此错误。换句话说:这是一个网络管道问题。确保没有其他守护程序在端口 9418 上运行。

3) git receive-pack并不意味着由最终用户运行。也就是说,如果“工作目录”是新初始化的 Git 存储库,则字符串“00700000000000000000000000000000000000000000 能力^{} report-status delete-refs side-band-64k ofs-delta”正是您会得到的。

简而言之:检查来自 git-daemon 的日志,并注意网络管道。

于 2014-11-11T03:15:29.687 回答