问题 添加后git无法推送


好吧,我有一个麻烦,因为有些星期以来我无法修复。 我使用git(在github上)来存储我的项目。最近我添加了一些新文件没有问题,但是,当我使用“git push”时,我有一个超时错误。

我使用Ubuntu 12.04,ssh(默认)和https。

所以,我决定制作depo(git clone)的新副本。 在此之后,我修改现有文件,提交并推送它...成功!

所以,我添加其他(在新副本中),提交它们并推送它们。而问题再次出现:无法推动 这是控制台输出:

time git push
Counting objects: 13, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (11/11), done.
Writing objects: 100% (11/11), 16.61 KiB, done.
Total 11 (delta 2), reused 0 (delta 0)
^C

real    7m59.383s
user    0m0.008s
sys 0m0.004s

我真的不明白我在这里做错了什么。 我在其他depo,同样的问题,但我的合作者没有任何麻烦。

我删除git,并重新安装它没有任何变化。

如果您有任何想法可以解决这个问题。

编辑1

git remote -v

origin  git@github.com:Krozark/projet_compilation.git (fetch)
origin  git@github.com:Krozark/projet_compilation.git (push)

编辑:解决方案

sudo ifconfig [wlan0] mtu 1460 (lower than 1500)

1610
2018-01-02 13:42


起源

显示输出 git remote -v。它看起来像一个网络超时,但没有遥控器的URI,没有什么可以做的帮助。还有,你呢 git fetch 从那遥远的? - fge
现在试试。 Github看起来再次正常工作。 - Gabriele Petronella


答案:


我看到一个同事正在遇到的这个问题与SSH网络有关,我们当时正在使用VPN连接,结果是网络MTU设置过高(如果我没记错的话是1492),我们用较小的值进行修补,直到它开始工作。看起来与网络数据包分裂有关。

不确定您是否就是这种情况,但尝试将网络MTU更改为较低的值以查看它是否有效并不会有什么坏处。

当然,如果这是Github方面的一个问题,这将不是一个因素(事实上,你可以创建一个新的回购并推高让我相信它不是MTU相关的)。


11
2018-01-02 13:49



哇!这对你有用吗Krozark? - Phil Street
我这样做:sudo ifconfig wlan0 mtu 576,它解决了。谢谢! - Krozark
我会尝试将你的MTU设置得尽可能高(你不能超过1500 - 它是最大的以太网限制),但是你可以在没有问题的情况下大约1460左右。最好拥有尽可能高的MTU,但保持功能正常。 - Phil Street
我将尝试其他的价值,但我从一个非常小的开始测试你的解决方案。 1460还可以。我的默认值是1500。 - Krozark
+1。我在回答中提到了VPN,但这个答案更为具体。 - VonC


正如您所建议的那样,固定MTU可以有效地缓解问题,我建议采用更具针对性的解决方案。

iptables -t mangle -I OUTPUT 1 -o wlan0 -d 207.97.227.239 \
    -p tcp --dport 22 --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1420

这劫持了与服务器的初始TCP协商(仅适用于github.com的IP上的SSH),并强制MSS为1420.这实际上与设置MTU相同,但更具选择性。在某些情况下,您无法轻松保存MTU更改,并且每次关闭/关闭界面时都需要重新应用它。

MSS需要比MTU小40,以允许40字节TCP报头+数据段(MSS是最大段大小)。

需要做这样的事情(即,使MTU低于1500)的最常见原因是VPN和隧道。 PMTU旨在解决这个问题,但它在太多情况下失败,让您手动需要调整某些路径的MTU。使用iptables规则允许您针对不同的问题路径不同地定制流量,而不是强制您将MTU设置为所有路径的最小公分母。这样做的问题是,通过提高标头数据比率,慢慢减少有效带宽。


3
2018-01-04 06:28



是否更详细地解释了根本原因是什么? - Phil Street


如果本地是好的(即你的git和ssh工作正常),那么它应该是远程方面的问题:

检查 GitHub状态

今天

3:22 UTC我们正在调查我们的一个文件服务器的问题,少数存储库不可用。

您可能会受到GitHub上提到的当前重复访问问题的影响。


或者它是一个连接问题(如 缺少VPN路由


2
2018-01-02 13:45



如果不是这种情况,可以使用另一个超时实例 blog.barbarycodes.com/2011/01/16/...: git push --no-thin。但事实并非如此 究竟 你的情况。 - VonC
它可能是来源,但显然不是,因为我刚刚尝试。 - Krozark
我尝试git push --no-thin,没有变化。 - Krozark
@Krozark我不知道这个,但是 git push --no-thin 直到git 1.8.5才会真正起作用。 - VonC