【问题标题】:git push " The remote end hung up unexpectedly "git push " 远端意外挂断 "
【发布时间】:2012-08-19 18:24:18
【问题描述】:

我在本地存储库中创建了一个新分支,经过一些提交后,我想将其推送到远程存储库。

git push origin new_branch

我有这个错误:

$ git push origin new_branch

计数对象:32,完成。

Delta 压缩最多使用 2 个线程。压缩对象:100% (18/18),完成。

写入对象:100% (18/18),5.29 KiB,完成。共 18 个(delta 13),重复使用 0 个(delta 0)

写入失败:管道损坏

致命:远端意外挂断

致命:远端意外挂断

当我使用 $ git remote -v

来源 git@106.187.99.99:XXX.git (fetch)

来源 git@106.187.99.99:XXX.git(推送)

git 分支

fiberead_com$ git branch -a
* new_branch
  master
  remotes/origin/HEAD -> origin/master
  remotes/origin/dev
  remotes/origin/master
  remotes/origin/online

nginx.conf

user www-data;
worker_processes  1;

error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

events {
    worker_connections  1024;
    # multi_accept on;
}

http {
    include       /etc/nginx/mime.types;

    access_log  /var/log/nginx/access.log;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
#    keepalive_timeout  65;
client_header_timeout 3m;
client_body_timeout 3m;
keepalive_timeout 175 120;
client_max_body_size 35m;

    tcp_nodelay        on;


    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";

    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

有人可以帮帮我吗?

我的 git 服务器在 Linode。我使用 GITLAB,其他项目没有这个问题。只有一个新项目,我使用 'git clone' 来拉我的电脑。但是当我推送代码时,出了点问题已经发生了。

我使用 Nginx。

而我使用'$ git push origin master',也有同样的问题。

【问题讨论】:

  • Broken pipe 表示服务器切断了您的连接,通常表示连接有问题。每次都会发生吗?等待几分钟后,它仍然会发生吗?
  • httpd 日志中关于该推送的内容是什么?
  • 您的遥控器是如何设置的?请显示git remote -v的输出
  • 检查服务器日志,检查远程用户是否有权限写入存储库...
  • 远程看起来不错,但你的答案在于服务器日志(httpd服务器,或gitlab日志)

标签: git branch push master linode


【解决方案1】:

这意味着负责监听请求的 http 服务器(这里是通过 http 的 git push)未能完成。

  • 要么是因为服务器出现问题:
    只有所述 http 服务器的日志包含根本原因(例如,可能是消息太大而服务器无法处理,或者是正确的问题,或者......)。
    这些日志可以在 etc/httpd/httpd.conf (Apache) 或 /var/log/nginx/error.log (NGiNX) 中,甚至在 gitlab 本身中。

  • 或者因为它从未收到过请求,OP jesktop 确认这里是这种情况:

我找到了所有的日志,但是错误日志是空的。
问题是网络。因为我在中国,这里有专门的网络。
所以VPN可以解决这个问题。

【讨论】:

    【解决方案2】:

    试试这个:

    git push origin feature/new_branch
    

    并检查连接是否有效。

    【讨论】:

    • $ git push origin origin/new_branch 错误:src refspec origin/frayay 不匹配任何。错误:未能将一些引用推送到 'git@106.187.99.99:XX.git'
    • $ git push origin origin/dev Total 0 (delta 0), reused 0 (delta 0) To git@106.187.99.99:XX.git * [new branch] origin/dev -> origin/开发
    【解决方案3】:

    致来自谷歌的人:六年后,这种情况仍然会定期发生。当我无意中提交了一个非常大的二进制文件(等)时,我已经看到了这种情况。删除二进制文件并重新提交以解决问题是不够的;由于 Git 的工作方式,最初包含它的提交仍然存在,因此大小也保留了。解决方案是彻底改变有问题的提交。

    一旦我确定了一个错误的提交作为原因,每次发生这种情况时的解决方案就很清楚了:git bisect。这对我来说可能每年出现一次或两次,并不总是因为文件很大。一旦您排除了网络问题,正如此处的其他答案正确指出的那样,我的解决方案总是相同的 - 平分,删除有问题的提交,然后您就可以推送了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-11
      • 2016-04-23
      相关资源
      最近更新 更多