繁体   English   中英

Git推送到LAN存储库停止或停止而没有错误

[英]Git push to LAN repo stalls or stops without error

意图

我打算在Windows本地网络中建立版本控制服务。

测试环境

我有一个/root文件夹,其中有2个仓库/foo/bar

尝试次数

有人建议我使用git-daemon服务( http://git-scm.com/docs/git-daemon ),但实现(和工作方式)与广告宣传相比更加复杂。

我发现的第一个指南是http://railsware.com/blog/2013/09/19/taming-the-git-daemon-to-quickly-share-git-repository/ 我在'/ root'文件夹中使用了他们的git daemon选项,该选项将为其中包含的所有存储库提供服务:

$ git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose

我成功克隆了一个空的仓库,但是当我添加一些内容时,我得到了以下消息:

$ git clone git://root-ip-addr/bar

Cloning into 'bar'...

remote: Counting objects: 3, done.

remote: Total 3 (delta 0), reused 0 (delta 0)

fatal: read error: Invalid argument

Receiving objects: 100% (3/3), done.

fatal: error in sideband demultiplexer

接下来,我找到了http://www.gitguys.com/topics/creating-a-shared-repository-users-sharing-the-repository/ ,他们甚至没有提到守护程序,而是去了本地文件夹-as -远程方式。 我仍然认为我需要一个守护程序,因此我尝试在守护程序上添加-enable:receive-pack选项的同时裸露我的-enable:receive-pack

他们建议使用客户端计算机上的分支进行提交,所以我这样做了。 我还致力于master分支,看看会发生什么。 在这两种情况下,GIT似乎都停止了。

这是客户端计算机尝试推送到中央集线器的屏幕快照。 您会看到它停在了那一点。

尝试从客户端推送时

这是运行守护程序的中央集线器的屏幕截图。

守护程序响应

在那之后,我只能输入ctrl + c来完全停止git守护进程。

我实际使用它的唯一方法是从存储库内部调用守护程序,但这将需要为每个存储库执行该操作(我打算为数百个存储库建立此守护程序)

我知道我应该花几周的时间来全面了解Git,这是我过去六个月以来一直推迟的工作,因为我已经能够使用基本的克隆,添加和提交。

话虽如此,我认为在尝试解释git工作流隐喻时应该有更多直观的指导性说明。

感谢您的时间。

看来这与msysgit中的错误#101 (Google代码中的问题457)有关,并且在Git-1.9.4-preview20140611中引入了修复程序。

设置sendpack.sideband config选项,然后再次推送即可。

git config --global sendpack.sideband false
git push origin ...

我用这个git daemon命令尝试了

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

我已尽力寻找错误的原因/解决方案:

fatal: read error: Invalid argument

也许该链接会有所帮助: Git远程服务器Push失败 似乎有关。

祝好运! 希望对您有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM