当我试图跑
时git push origin master --force
我刚才
Counting objects: 2649, done.
Delta compression using 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
与不安全有关吗?我尝试在Fatal: The remote end hung up unexpectedly的答案中创建公钥并再次运行它,但它仍然不起作用。我实际上没有使用钥匙吗?如果是这样,我该如何使用它?
答案 0 :(得分:457)
问题是由git / https缓冲区设置引起的。 为了解决它(取自Git fails when pushing commit to github)
git config http.postBuffer 524288000
再次运行命令
答案 1 :(得分:70)
原因:已超出Git的默认文件发布大小。
解决方案:
导航到repo。
导航到存储库后,运行以下命令将缓冲区增加到500MB:
git config http.postBuffer 524288000
答案 2 :(得分:67)
这与How do I get github to default to ssh and not https for new repositories类似。 可能值得尝试从http协议切换到ssh:
$ git remote add origin git@github.com:username/project.git
答案 3 :(得分:22)
您可能会收到类似这样的错误
错误:无法锁定配置文件.git / config:没有这样的文件或 目录
那是因为你没有本地.git/config
文件你可以通过这个命令让它工作
git config --global http.postBuffer 524288000
答案 4 :(得分:11)
其他解决方案在我的案例中没有用,为我修复垃圾收集:
git gc --aggressive
答案 5 :(得分:8)
此错误也可以通过存储库中的缺少写入权限来引发。
我的具体案例是这样的:
root
用户(通过SSH)创建了一个repo。git
linux用户,该用户应该管理所有与git相关的操作。root
用户创建的,而git
用户根本没有文件权限可以将任何内容写入存储库。答案 6 :(得分:7)
罪魁祸首(以我为例):
高延迟网络。
这本身并不是答案,而是更多可以帮助他人的观察结果。我发现此错误偶尔会在高延迟网络上弹出(例如,我必须使用Satellite碟进行互联网访问)。网络速度很好,但是延迟可能很高。注意:该问题仅在某些情况下存在,但我尚未确定模式是什么。
临时缓解措施:
我切换了网络,转而使用了速度较慢但延迟较低的蜂窝网络(我的电话用作热点),问题消失了。请注意,我只能间歇性地执行此操作,因为我的单元连接也是间歇性的。再加上带宽使用会增加成本。我也很幸运能够使用此选项。并非每个人都如此。
我确定某个地方的某些配置设置会使git(或ssh或curl或首先超时)更能容忍此类网络,但我不知道它是什么。
对开发人员的请求:
这类问题对于农村人口来说是一个长期存在的问题。在设计系统,工具和应用程序时,请想想我们。谢谢。
答案 7 :(得分:4)
本文有很好的解释,它解决了我的问题。
git config --global http.postBuffer 157286400
答案 8 :(得分:4)
根据您用于推送回购协议的协议
HTTP
git config --global http.postBuffer 157286400
参考:
SSH
在Linux计算机的~/.ssh/config
文件中添加以下内容
Host your-gitlab-server.com
ServerAliveInterval 60
ServerAliveCountMax 5
IPQoS throughput
参考:
答案 9 :(得分:3)
最近我遇到了同样的问题。克隆远程存储库时出现如下错误:
<块引用>致命:远端意外挂断 MiB | 7.00 KiB/s
致命:早期EOF
索引包失败
当我用谷歌搜索错误时,我被重定向到这里。我遵循了大部分答案,但没有解决我的问题。
唯一的解决方案是重新安装我的“网络适配器 (WiFi) 驱动程序软件”。所以,我想强调的是,上述错误也可能是由您的 PC 的 WiFi 驱动程序软件中的问题引起的。如果上述答案均无效,则您可以尝试重新安装 WiFi 驱动程序。它将解决问题。
您可以轻松地重新安装 WiFi 驱动程序,如下所示:
重启电脑后,尝试git操作成功(推/拉/克隆)。
答案 10 :(得分:3)
您可能在现有存储库中克隆了存储库,解决问题只需在另一个目录中克隆存储库并将更改复制到此新目录,然后运行推送。
答案 11 :(得分:3)
与其他答案相反 - 我在使用ssh推送时遇到了问题 - 我切换到https并修复了它。
git remote remove origin
git remote add origin https://github..com/user/repo
git push --set-upstream origin master
答案 12 :(得分:3)
在我们的例子中,问题是编写.git/config
文件的克隆,其中包含一个只读访问方法的url条目。将网址从://
方法更改为@
方法可解决问题。
正在运行git remote -v
解决了这个问题。
答案 13 :(得分:2)
我通过重新打包解决了这个问题:
git repack --max-pack-size=100M -a -d
转到存储库 > 在 GitHub Desktop 的命令提示符中打开 运行以下命令:
set GIT_TRACE=1
set GIT_CURL_VERBOSE=1
git push origin <branch>
答案 14 :(得分:2)
另外一个补充,因为我以不同的方式遇到了这个错误,谷歌把我带到了这里。
我的问题是案件不匹配;一个camelCase而另一个没有。显然,GIT在没有告诉你原因的情况下阻止你这样做。因此,如果您的分支仅与大写字母不同,请尝试将它们更改为相同。
答案 15 :(得分:2)
如果使用GitHub,请在存储库目录中运行以下命令,将http.postBuffer
设置为GitHub的最大允许值:
config system admin user
edit admin
set rpc-permit read-write
end
如果使用git config http.postBuffer 2147483648
克隆仓库,则可以使用相同的选项克隆它:
git clone
在两种情况下,上述数字均等于 2 GiB 。但是,可能需要多达此可用内存量才能使用此值。
确保对GitHub的每次推送所提交的提交所添加的内容不超过此更改的大小。实际上,为了安全起见,我会将提交推送大小保持在1.8 GiB以下。这可能需要将大型提交分为较小的提交和推送。
之所以使用此特定值,是因为至少截至2018年,此值是documented (archive link)作为GitHub的推送大小限制:
我们不允许推送超过2GB
一些先前的答案说将其设置为524288000(500 MiB),但是这个数字似乎是任意的,没有价值。只要您的推送大小不大于设置值,任何较小的值都应起作用。
相反,如果将值设置为大于2 GiB,并且如果尝试的推送大小也更大,则可以预期GitHub记录的错误:
远程:致命:装箱超过允许的最大尺寸
答案 16 :(得分:2)
如果您正在使用git for windows(如果您在Windows机器上使用git,可能就是这样),并且此处没有其他修复工作适合您,请尝试转到https://github.com/git-for-windows/git/releases,然后获取版本2.4.5或之后的版本。为我修好了。
答案 17 :(得分:2)
更新OSX平台后可能会发生这种情况。
打开终端并导航到.ssh文件夹,然后输入ssh-add -K ~/.ssh/id_rsa
答案 18 :(得分:1)
上述解决方案都不适合我,但是我推动的提交非常大。
很简单,我把它分成两个提交,然后分别推送每个提交,它立即通过。
答案 19 :(得分:1)
即使配置了后缓冲区,问题也没有解决。
当我将wifi网络从宽带更改为移动热点时,我的问题得到解决。这在逻辑上可能不是正确的答案,但已解决了该问题。
请确保您具有良好的互联网速度。
答案 20 :(得分:1)
就我而言,使用Intellij Idea推送时出现此错误。
这是我查找并修复错误的方法。
set GIT_CURL_VERBOSE=1 set GIT_TRACE=1
git push
-> fatal: The current branch feature/my-new-feature has no upstream branch.
To push the current branch and set the remote as upstream
解决方案是设置上游,该上游在之前一定已经出错了:
git push --set-upstream origin feature/my-new-feature
答案 21 :(得分:1)
以下命令可能对您有所帮助...
git config --global http.postBuffer 1048576000
git config --global http.lowSpeedLimit 0
git config --global http.lowSpeedTime 999999
答案 22 :(得分:1)
我在拉动时碰巧遇到同样的错误 我已经完成了“http.postBuffer”技巧。它解决了它,但是当我想推动时,我又遇到了错误。
什么解决了我的问题:
1.使用其他虚拟机将其克隆到其他文件夹。 (Linux)的。
我做了我的改变
3.用我最初无法推送的原始虚拟机推送它。 (Windows)中
答案 23 :(得分:1)
当我在.ssh中输入错误的密钥对时出现此错误。将pubkey添加到github(在设置中)为我修复了这个问题。
答案 24 :(得分:1)
我有同样的问题。我在git网页上注意到SSH克隆URL具有下一个结构:
git@github.com:user/project.git
我可以解决我的问题,只需更改&#34;:&#34; by&#34; /&#34;,如下:
git@github.com/user/project.git
可能会有所帮助。
答案 25 :(得分:1)
我上载大型存储库时遇到了类似的错误,即“致命:远程端意外挂起”,而没有任何其他详细信息。
经过大量研究,这是我所做的:
最后,我发现可能是我使用的是旧版git客户端,因为我没有看到其他错误消息。 我将git客户端升级到最新版本(2.20.1),瞧,错误消失了!
答案 26 :(得分:1)
似乎它可能是千件之一。
对我而言,我最初是通过SourceTree推动大师并开发(大师没有变化)。改变这种发展只会有效。
答案 27 :(得分:0)
似乎几乎毫无意义地添加了一个答案,但是当我终于发现Visual Studio Online遭遇零星停电时,我正在争吵多年。当VS继续提示输入信用证时,这一点就变得很明显了,VSO网站有时会给出500分。
Counting objects: 138816, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (38049/38049), done.
error: unable to rewind rpc post data - try increasing http.postBuffer
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
The remote end hung up unexpectedly/138816), 33.30 MiB | 3.00 KiB/s
Writing objects: 100% (138816/138816), 50.21 MiB | 3.00 KiB/s, done.
Total 138816 (delta 100197), reused 134574 (delta 96515)
fatal: The remote end hung up unexpectedly
Everything up-to-date
之后我将HTTP后缓冲区设置回2Mb,因为我认为它对许多较小的帖子效果更好。
路
答案 28 :(得分:0)
就我而言,此错误是因为 VPN 连接断开。只需关闭并打开 VPN 即可修复错误。
答案 29 :(得分:0)
从 vscode 上的 bash
shell 切换到 zsh
为我修复了它。
答案 30 :(得分:0)
我能够使用Git Shell解决这个问题。
github.com中的每个存储库都为您提供了可以使用Shell下载的HTTPS / SSH / Subversion URL,请参见此处:http://prntscr.com/8ydguv。
根据GitHub最近的变化,SSH似乎是最好的方法。
在Shell中使用的命令:
wget http://github.com/[username]/[repo]/archive/master.zip
答案 31 :(得分:0)
对我来说,当我试图从一个甚至不存在的分支中拉取数据时,我遇到了同样的错误
请在拉取时检查分支名称。
答案 32 :(得分:0)
当我拼错我的远程分支名称
时出现此错误答案 33 :(得分:0)
遇到相同的问题,并尝试所有答案均不起作用,只需尝试另一个帐户,即可为我工作。
答案 34 :(得分:0)
PLESK Nginx和GIT 我在plesk git上遇到此错误,同时用(谁知道)推送大型仓库,它用HTTP代码413给了我这个错误,我调查了以下内容 服务器是Plesk,它运行着Nginx以及apache2,因此我查看了日志并在Nginx日志中发现了错误
后跟this link,以允许plesk使用较大的文件上传来重建配置。
我跳过了git的php部分
那次git push正常工作了。
答案 35 :(得分:0)
这样做可以查看您正在使用的密钥; ssh -vT git@github.digitalglobe.com
然后确保在您的构建中,您在开始时运行此操作。 eval&#34; $(ssh-agent -s)&#34; ssh-add~ / .ssh / id_rsa
答案 36 :(得分:0)
1)cd到项目目录
2)git status
3)git checkout -f HEAD
4)通过再次拉下主人来确认成功,以确保在您的回购看上去不完整时更新
如果您从Bitbucket克隆回购时从Visual Studio的Git中收到有问题的错误,这是有效的
答案 37 :(得分:0)
对我来说,问题在于网络设置:我有一个“杀手” wifi卡,显然可以用SSH和SSL不喜欢的方式处理网络数据包。
要解决此问题,我必须进入“杀手控制中心”,“参数”并禁用“高级流检测”-git命令立即又开始工作。
答案 38 :(得分:0)
以上所有答案均不适用于我,但这就是这样做的。
1)从您的项目中删除.git/
2)将远程仓库克隆到桌面等新位置。 git clone https://github.com/foo/bar.git
3)将.git/
从新位置移到旧位置
4)重新提交并推送您的更改
答案 39 :(得分:0)
我的问题(致命:远程端意外挂起)已通过检查存储库许可权和所有者来解决。
git存储库文件的所有者必须是您要与其一起推/拉/克隆的用户。
答案 40 :(得分:0)
我认为这样做不是一个好主意,但是如果您在您的计算机中进行了备份,请再按一次,然后尝试克隆repo,然后从旧目录中删除.git,然后从新克隆的文件夹中移动.git。 git已解决,但由于该问题,某些文件可能无法在git上载。再次将所有内容从ur推回,然后将其拉到urserver或损坏的另一台计算机上。现在我只是做这件事...对我有用..并在执行此操作之前备份您的目录。
如果我错了,请纠正我。我也不知道这样做后会出错吗?但这一次确实有效。
答案 41 :(得分:0)
如果您要推送的任何提交格式不正确,也会发生这种情况。
我(在不知不觉中)提交了一个带有错误的“作者电子邮件”字段的提交,但是我得到的只是这个模糊的remote end hung up
错误消息。我能够推送其他分支,而不仅仅是这个 one 分支,所以我一次一次推送了来自“坏”分支的提交,直到我最终登陆:
Pushing to git@github.com:directangular/unicorn.git
Counting objects: 100% (9/9), done.
Delta compression using up to 20 threads
Writing objects: 100% (5/5), 549 bytes | 549.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote: error: object 74c7584ff0b93591c19d3a3c19695889dd2274d2: badEmail: invalid author/committer line - bad email
remote: fatal: fsck error in packed object
error: remote unpack failed: index-pack abnormal exit
To github.com:directangular/unicorn.git
! [remote rejected] pizzafeast -> pizzafeast (failed)
error: failed to push some refs to 'git@github.com:directangular/unicorn.git'
因此,看来remote end hung up unexpectedly
错误有点“吞噬”了实际的错误消息,这可能是某种形式的错误提交,就像我在这里一样。
修复格式错误的电子邮件后,我可以正常发送邮件。