当我试图逃跑的时候

git push origin master --force

我刚刚

Counting objects: 2649, done.
Delta compression uses up to 2 threads.
Compressing objects: 100% (1280/1280), done.
error: RPC failed; result=22, HTTP code = 413 | 116 KiB/s   
fatal: The remote end hung up unexpectedly
Writing objects: 100% (2504/2504), 449.61 MiB | 4.19 MiB/s, done.
Total 2504 (delta 1309), reused 2242 (delta 1216)
fatal: The remote end hung up unexpectedly
Everything up-to-date

这和缺乏安全感有关吗?我尝试创建一个公钥作为致命的答案:远程端意外挂断并重新运行它,但它仍然不工作。我不是在用钥匙吗?如果是,我该如何使用它?


当前回答

罪魁祸首(就我而言): 高时延网络。

这本身不是一个答案,而更多的是一种观察,可以帮助其他人。我发现这个错误偶尔会在高延迟网络上弹出(例如,我必须使用卫星天线上网)。网络的速度很好,但延迟可能很高。注意:问题只存在于某些场景,但我还没有确定是什么模式。

临时缓解: 我换了网络——我换到了一个更慢,但延迟更低的蜂窝网络(我的手机用作热点)——问题消失了。请注意,我只能周期性地这样做,因为我的手机连接也是间歇性的。再加上带宽的使用增加了成本。我也很幸运,我有这样的选择。不是每个人都这样。

我确信在某个地方有一些配置设置使git -或ssh或curl或任何先超时的东西对这样的网络更宽容,但我不知道它是什么。

对开发商的呼吁: 这类问题对农村人口来说是一个持续的问题。当您设计系统、工具和应用程序时,请考虑我们。谢谢你!

其他回答

最近我也遇到了同样的问题。当克隆远程存储库时,我得到了如下错误:

fatal:对端异常挂机。MiB | 7.00 KiB/s 致命:早期EOF index-pack失败

当我用谷歌搜索这个错误时,我被重定向到这里。我回答了大部分问题,但没有解决我的问题。

唯一的解决办法是重新安装我的“网络适配器(WiFi)驱动软件”。所以,我想强调的是,上述错误也可能是由你电脑的WiFi驱动软件的问题造成的。如果上述答案都不工作,那么您可以尝试重新安装WiFi驱动程序。这将解决问题。

您可以轻松地重新安装WiFi驱动程序,如下所示:

打开网络和互联网设置 选择“网络重置” 然后选择“立即重置”

重启电脑后,尝试git操作成功(推/拉/克隆)。

这看起来类似于我如何让github默认为ssh,而不是https的新存储库。 也许从http协议切换到ssh协议是值得的:

$ git remote add origin git@github.com:username/project.git

基于您正在使用的推送到回购的协议

HTTP

git config --global http.postBuffer 157286400

引用:

https://git-scm.com/docs/git-config#Documentation/git-config.txt-httppostBuffer

SSH

在~/中添加以下内容。Linux机器中的Ssh /config文件

Host your-gitlab-server.com
  ServerAliveInterval 60
  ServerAliveCountMax 5
  IPQoS throughput

引用:

https://docs.gitlab.com/ee/topics/git/troubleshooting_git.html#check-your-ssh-configuration https://unix.stackexchange.com/questions/3026/what-options-serveraliveinterval-and-clientaliveinterval-in-sshd-config-exac https://communities.vmware.com/message/2778248

您可能在现有的存储库中克隆了存储库,要解决这个问题,可以简单地在另一个目录中克隆存储库,并将更改复制到这个新目录,然后运行推送。

我不认为这是一个好主意,但如果你有备份在你的机器..再推一次,然后尝试克隆repo,然后从旧目录中删除.git,并从新的克隆文件夹中移动.git。Git已解决,但由于这个问题,一些文件可能无法在Git上上传。再次从你的备份,然后把它拉到你的服务器或其他机器,它得到curcurt。现在我刚做了这个…对我有用。在这样做之前,备份一下你的文件夹。

如果我说错了,请指正。我也不知道这样做之后会出什么问题?但这次真的管用了。