我无法推送到github。我能够推动一些变化,但这一次,它在写完之后就会挂起:
git push origin master
Counting objects: 22, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (12/12), done.
Writing objects: 100% (12/12), 1.51 KiB, done.
Total 12 (delta 8), reused 0 (delta 0)
在我的Ubuntu进程管理器上,当我尝试推送一些内容时,我看到ssh挂起,它是:ssh git@github.com git-receive-pack'xxx / yyy.git'
当我尝试在终端上直接运行此命令时,现在它在写入此内容后挂起:
0078...7d4 refs/heads/master report-status delete-refs side-band-64k quiet ofs-delta
0000
所有其他的都运作良好,但我无法推动。可能是什么原因?
其他信息:我重新创建了git文件,并将远程服务器从SSH更改为HTTP。现在,当我尝试推送时出现此错误:
Counting objects: 17, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (9/9), 1.19 KiB, done.
Total 9 (delta 6), reused 0 (delta 0)
error: RPC failed; result=52, HTTP code = 0
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
额外信息2:我已经过几个小时的测试了,看起来我的网络连接就是问题所在。我试图从另一个连接推出,它运行得很好。这背后的原因是什么?顺便说一句,调制解调器的防火墙已被禁用。
答案 0 :(得分:9)
我花了最后5个小时试图修复类似的问题。首先,您是通过隧道还是VPN连接运行它?
事实证明隧道的MTU(最大传输单元)可能配置错误,因为网络路径中间的某些路由器只能支持较低的MTU,但VPN /隧道软件不知道这一点,结果丢包。
所以快速回答是尝试降低连接的MTU:
sudo ifconfig eth0 mtu 1300
这里我设置eth0
接口的MTU,替换为您实际用于访问git服务器的接口。默认MTU通常为1500.
对于OpenVPN,我必须更新tun0
接口。在OpenVPN配置中有更好/更健壮的方法:使用link-mtu <n>
和mssfix
选项。
答案 1 :(得分:5)
在我的案例中,问题与存储库的访问权限有关。我只读了访问权限,在添加写入权限后,问题就解决了。
答案 2 :(得分:0)
我也发生了同样的情况,原因是接收端的磁盘已满100%。
答案 3 :(得分:-1)
首先运行以下内容:
env | grep SSH_ASKPASS
如果什么都没有,那么你必须设置该值。如果您正在使用GNOME,请通过执行以下操作找到gnome-ssh-askpass.sh
的位置:
find / | grep gnome-ssh-askpass
,通常位于/etc/profile.d
目录中。通常,这会自动加载,但由于某种原因它没有。所以运行以下内容:
source /etc/profile.d/gnome-ssh-askpass.sh
(或者,您只需chmod +x
该文件并直接运行,这取决于您自己)
完成后,请验证env | grep SSH_ASKPASS
是否有值,然后git push将再次运行。
如果您没有找到gnome-ssh-askpass.sh
文件,请执行yum search ssh-askpass
并安装该软件包(通常为yum install openssh-askpass
)
对于apt-get
,假设您正在使用gnome,请执行类似的操作,但如果使用kn,则可能会有kde-ssh-askpass
??
答案 4 :(得分:-2)
检查您的网络连接上传速度是否太慢。也许你只需要时间。您是否可以监控网络连接以查看是否向上游发送数据?