Git推送导致致命:远程端意外挂断

时间:2012-07-07 18:51:32

标签: git

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

  

致命:远程端意外挂断。

系统日志显示:

  

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

经过一些研究,我认为我可以启用“接收包”,但我无法弄清楚如何。

当我尝试:

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

我明白了:

  

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

当我尝试

git receive-pack <working directory>

我明白了:

  

00700000000000000000000000000000000000000000能力^ {}报告状态delete-refs side-band-64k ofs-delta   0000 ^ C

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

一些指示可能有助于万一人们遇到“远程端意外挂断”与git-daemon。

1)Git "How to" documentation on git-daemon表示“远程端挂起”消息是一般消息。您应该查看服务器日志,以获取有关可能出错的更多信息。对于最初设置的东西,我还建议使用--informative-errors切换到git-daemon,这将为git push命令产生更有用的错误。

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

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

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