私有Git仓库-在拉取时停止更新

12

我刚在我的 Linux 服务器上安装了 git 并配置了 SSH - 我想创建一个私有仓库来和朋友一起工作。当我拉取或克隆那个仓库时一切正常(局域网),但是当我的朋友尝试通过互联网拉取或克隆它时,git 卡在了:

remote: Compressing objects: x

x始终低于17%。

有什么问题或者我该如何修复它?

PS:我没有使用gitosis,在远程库中使用了以下命令初始化:git --bare init

提前致谢。

更新:

结果命令:

$ cat .git/config

[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
hideDotFiles = dotGitOnly
[remote "origin"]
url = ssh://git@server:port/~/repo_name.git
fetch = +refs/heads/*:refs/remotes/origin/*

 

$ git fetch -v
Enter passphare for key '/c/Users/dev/.ssh/id_rsa':
remote: Counting objects: 76, done.
remote: Compressing objects: 21% (12/55)

然而,当我的朋友获得了带源代码的ZIP文件并将其推送时,一切都很顺利。因此,他能够进行推送。我添加了一个空文件并将其推送,他成功地下载(拉取)了它。


在服务器端执行 git gc 命令是否有帮助?此外,是否涉及不同的协议(ssh/git/static-http/"intelligent"-http)?您是否使用相同的用户帐户来访问您和您的朋友,还是它们不同(我在考虑权限问题)? - Rudi
@Rudi 嗯,当我通过SSH在本地执行git gc时(服务器正在我的计算机上运行),它完成了,但是当我的朋友尝试做同样的事情时,它卡住了(光标一直闪烁)。之后他尝试拉取并且在“压缩对象:7%”处卡住了。 是的,我们有一个用于git的帐户,并且我们正在使用SSH协议(原点看起来像这样,在两台计算机上):ssh://git@server_uri:port/~/repo_name.git。Git存储库位于git帐户的主目录中。顺便说一下,我们正在使用git pull origin master - Robik
听起来好像有一个网络组件会在几秒钟后断开ssh连接,很可能是一个缺陷的NAT。您可以尝试在两端使用wireshark,看看连接的TCP数据包是否在一定时间后被丢弃(我怀疑服务器->客户端缺少ACK数据包)。 - Rudi
万一有帮助的话,您的朋友可以尝试在克隆之前运行 git config --global http.postBuffer 524288000 命令吗? - VonC
@Vonc 很不幸,这没有帮助。它仍然在10-14%的地方冻结。 - Robik
3个回答

7

让你的朋友尝试:

git fetch -v

如果这不能给你答案,那就让他进行以下操作:
cat .git/config

如果您的服务器是安全的,请更新您的问题,包括该命令的输出。如果不安全,请更改IP和其他识别详细信息为虚假IP和虚假详细信息,但尽量不要更改其他内容,因为您可能会提供误导性信息。

根据更新进行编辑:

URL应以“ssh://”开头,而不是“ssh /”。尽管我即将再次检查。


抱歉,它是 ssh://。我只是复制了一些表情符号,所以丢失了。 - Robik
该死,那么我真的不知道因为其他一切看起来都很正常。你的朋友能否到你家来吗?或者你可以尝试从网络外部克隆/拉取你的仓库。这样你就可以弄清楚问题是在他那边还是在你这边。 - Gerry

3
如果使用之前有效的配置,Git push/pull卡住了,请尝试重新启动电脑。听起来很奇怪,但我在Windows和Linux上都遇到过这种情况。

2
刚刚我也遇到了这个问题(在Mac OS上)。不太确定需要重置哪个服务,但你的想法是对的。谢谢! - jdunk

2

在我的以太网适配器设置中,将巨型数据包的大小从1514字节更改为9014字节后,我解决了相同的问题。


3
很难相信Git需要使用巨型数据包才能正常工作。 - Randy Howard
1
我认为实际上可能是另一个设置与较小的尺寸结合在一起导致了失败。我已经遇到了几个月我的网络卡的问题。这很可能是驱动程序问题。 - James Baker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接