You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法向GitLab推送代码,远程端意外挂断问题求助

解决Git推送失败及signal 11段错误问题

从你遇到的情况来看,merge-base died of signal 11这个错误是关键——这属于Git进程的段错误(内存访问异常),几乎可以肯定和你使用的Git 2.17.0版本过旧直接相关,这个2018年的老版本存在不少稳定性bug,后续版本已经修复了大量这类问题。结合推送失败的现象,我建议按以下步骤逐一排查:

1. 优先升级Git到最新稳定版

旧版本Git在处理rebase、批量推送等操作时,很容易出现内存崩溃问题。升级是解决signal 11错误最有效的方式:

  • Windows:直接下载最新Git安装包覆盖安装
  • macOS:通过Homebrew执行 brew upgrade git
  • Linux(Ubuntu/Debian):执行 sudo apt update && sudo apt install git

升级完成后,先验证版本:

git --version

再尝试执行之前报错的命令:

git pull --rebase origin master

如果这个错误消失,再测试推送操作。

2. 放心切换到SSH方式推送

你之前担心SSH会推送所有历史,这完全是误解——SSH只是Git的身份验证和传输方式,和HTTPS的推送逻辑完全一致,不会额外推送任何内容。反而SSH比HTTPS更稳定,不容易出现连接中断问题:

  1. 先在GitLab个人设置的「SSH密钥」页面,添加你的本地SSH公钥
  2. 在终端修改远程仓库地址为SSH格式:
    git remote set-url origin git@gitlab.com:me/myrepo.git
    
  3. 测试SSH连接是否正常:
    ssh -T git@gitlab.com
    
    看到Welcome to GitLab, @me!就说明配置成功了
  4. 再次尝试推送:
    git push origin master
    

3. 检查本地仓库完整性

如果升级Git后还是出现signal 11错误,可能是本地仓库的Git对象损坏:

  1. 执行仓库完整性检查:
    git fsck --full
    
  2. 如果发现损坏的对象,建议重新克隆远程仓库,然后用git cherry-pick将本地未推送的17次提交迁移到新仓库,再进行推送。

4. 临时网络排查(可选)

如果推送仍提示fatal: The remote end hung up unexpectedly,可以临时尝试:

  • 关闭代理、防火墙,确认网络连接稳定
  • 增大HTTP缓冲区(对旧Git版本效果有限,优先升级):
    git config --global http.postBuffer 1048576000
    

内容的提问来源于stack exchange,提问作者Anthony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 07:23:52