无法推送到 github,远程端意外挂断

Unable to push to github, Remote end hung up unexpectedly

我正在尝试通过 Github.

上的源代码控制上传一个相对较大的 Unreal engine 4 项目

它完全上传,当它达到 100% 时失败并给我这个错误:

Writing objects: 100% (8901/8901), 11.30 GiB | 33.67 MiB/s   
Writing objects: 100% (8901/8901), 11.32 GiB | 31.25 MiB/s, done.
Total 8901 (delta 632), reused 8579 (delta 403)
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
error: RPC failed; curl 56 Send failure: Connection was reset
Everything up-to-date

(The error was parsed as 4: The remote disconnected. Check your Internet connection and try again.)

我的连接没问题,因为我试了好几次,总是100%失败。

我用 Sourcetree 和 Github Desktop 试过了,它产生了同样的错误。

首先检查这是否是客户端设置问题:

git config http.postBuffer 524288000

(你可以 increase that setting 因为 Git 2.13)

还要确保不要超过 GitHub size limit

最近有这个问题,当我使用 repo 的 HTTPs url 进行推送时,后来切换到 SSH,它按预期工作。我的 Repo 大小是 500MB,使用 SSH 为我修复了它。

设置 SSH 密钥(如果您没有)

  1. 创建 SSH 密钥:
    ssh-keygen -t rsa -b 4096 -C "github_registered_mail_id@xyz.com"

  2. 从创建的 public 密钥文件中复制密钥(所有内容)通常存在于 ".ssh/id_rsa.pub"

  3. 登录 github 并在
    下添加 public 键 settings->SSH_and_GPG_Keys->new_key

  4. 将 public SSH 密钥添加到 Github 后,使用
    测试 SSH 连接 ssh -vT git@github.com

准备好 SSH 后。

  1. 设置上游(推送)远程 URL 这将是存储库的 SSH url 而不是通常的 HTTPS url.
    git remote add <remote-name> git@github.com:username/repo_name
  2. 将您的分支设置为使用新的上游 url
    git push --set-upstream <remote-name> <branch_name>
  3. 照常推送大仓库
    git push <remote-name> <branch_name>