Git推送到LAN repo停止或停止没有错误

时间:2015-01-22 20:43:39

标签: windows git version-control

意图

我打算在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守护进程选项。将服务于其中包含的所有回购的文件夹:

$ 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/他们甚至没有提到守护进程,而是选择了本地文件夹作为远程方法。我仍然认为我需要一个守护进程,所以我尝试的是在守护进程中添加-enable:receive-pack选项时使我的回购裸露。

他们建议在客户端计算机上使用分支来提交,所以我做了。我也致力于主分支看看会发生什么。在这两种情况下,GIT似乎停滞不前。

以下是尝试推送到中央集线器的客户端计算机的屏幕截图。你可以看到它在那时停滞不前。

when attempting to push from a client

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

daemon response

我只能在ctrl + c后键入以完全停止git守护进程。

我实际上让它工作的唯一方法是从回购中调用守护进程,但这需要为每个回购做这个(我打算为数百个回购建立这个)

我知道我应该花几周时间彻底了解Git,这是我过去6个月推迟的事情,因为我已经能够通过基本克隆,添加和提交

话虽如此,我认为在尝试解释git工作流程隐喻时,应该有更多视觉上建设性的指南。

感谢您的时间。

2 个答案:

答案 0 :(得分:3)

似乎它与msysgit中的错误#101(谷歌代码问题457)有关,并在Git-1.9.4-preview20140611中引入了修复。

设置sendpack.sideband配置选项而不是再次按下。

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

我用这个git守护进程命令

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

答案 1 :(得分:1)

我尽我所能并寻找错误的原因/解决方案:

fatal: read error: Invalid argument

也许这个链接会有任何帮助:Git remote server Push fails。这似乎是相关的。

古德勒克!我希望它可以帮到你