首页 文章

Git,致命:远程端意外挂断

提问于
浏览
196

当我试图跑

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的答案中创建一个公钥并再次运行它,但它仍然无效 . 我实际上没有使用钥匙吗?如果是这样,我该如何使用它?

21 回答

  • 0

    拉我碰巧有同样的错误 .
    我做了"http.postBuffer"把戏 . 它解决了它,但是当我想推动时,我又遇到了错误 .

    什么解决了我的问题:
    1.使用其他虚拟机将其克隆到其他文件夹 . (Linux)的 .
    我做了我的改变 .
    3.用我最初无法推送的原始虚拟机推送它 . (视窗)

  • 1

    当我在.ssh中输入错误的密钥对时出现此错误 . 将pubkey添加到github(在设置中)为我修复了这个问题 .

  • 0

    我也有同样的问题 . 我在git网页上注意到SSH克隆URL具有下一个结构:

    git@github.com:user/project.git
    

    我可以通过“/”更改“:”来解决我的问题,如下所示:

    git@github.com/user/project.git
    

    可能这可能会有所帮助 .

  • 1

    好像它可能是千件之一 .

    对我来说,我最初是通过SourceTree推动大师并开发(大师没有变化) . 改变这种发展只会起作用 .

  • 1

    当我拼错我的远程分支名称时,我收到此错误

  • 61

    这与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
    
  • 434

    问题是由于git / https缓冲区设置 . 为了解决它(取自Git fails when pushing commit to github

    git config http.postBuffer 524288000
    

    然后再次运行命令

  • 2

    原因:已超出Git的默认文件发布大小 .

    方案:

    导航到repo .

    导航到存储库后,运行以下命令将缓冲区增加到500MB:

    git config http.postBuffer 524288000
    
  • 0

    你可能会收到这样的错误

    错误:无法锁定配置文件.git / config:没有这样的文件或目录

    那是因为你没有本地 .git/config 文件你可以通过这个命令使它工作

    git config --global http.postBuffer 524288000

  • 3

    其他解决方案在我的情况下不起作用,做垃圾收集为我修复它:

    git gc --aggressive

  • 8

    此错误也可以通过存储库中的 missing write permissions 抛出 .


    我的具体案例是这样的:

    • 我用我服务器的 root 用户创建了一个repo(通过SSH) .

    • 我安装了a git service并创建了一个 git linux用户,该用户应该管理所有与git相关的操作 .

    • 到那时,我忘记了回购首先是用 root 用户创建的,而 git 用户根本没有文件权限将任何内容写入存储库 .

  • 1

    在我们的例子中,问题是一个克隆,它写了一个 .git/config 文件,其中包含一个只读访问方法的url条目 . 将URL从 :// 方法更改为 @ 方法可解决问题 .

    运行 git remote -v 点亮了一些问题 .

  • 0

    您可能在现有存储库中克隆了存储库,解决问题可以简单地在另一个目录中克隆存储库,并将更改复制到此新目录,然后运行推送 .

  • 3

    与其他一个答案相反 - 我在使用ssh推送时遇到了问题 - 我切换到https并修复了它 .

    git remote remove origin
    git remote add origin https://github..com/user/repo
    git push --set-upstream origin master
    
  • 2

    如果你正在使用git for windows(如果你在Windows机器上使用它,你可能会这样做),并且这里没有其他修复工作适合你,请尝试转到https://github.com/git-for-windows/git/releases,并在版本2.4上或之后获得版本 . 5 . 为我修好了 .

  • 65

    另外一个补充,因为我以不同的方式遇到了这个错误,谷歌把我带到了这里 .

    我的问题是案件不匹配;一个camelCase而另一个没有 . 显然,GIT在没有告诉你原因的情况下阻止你这样做 . 因此,如果您的分支仅在大写字母中与远程分支不同,请尝试将它们更改为相同 .

    见:Git: 'Master cannot be resolved to branch' after merge

  • 9

    更新OSX平台后可能会发生这种情况 .

    打开终端并导航到.ssh文件夹,然后输入 ssh-add -K ~/.ssh/id_rsa

  • 0

    我能够使用Git Shell解决这个问题 .

    github.com中的每个存储库都为您提供了可用于使用Shell下载的HTTPS / SSH / Subversion URL,请参见此处:http://prntscr.com/8ydguv .
    根据GitHub最近的变化,SSH似乎是最好的方法 .

    在Shell中使用的命令:

    git clone "URL of repo goes here w/ no quotes"
    
  • 20

    似乎几乎毫无意义地添加了一个答案,但是当我终于发现它是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,因为我认为它对许多较小的帖子效果更好 .

    卢克

  • 3

    这样做可以看到你正在使用的钥匙; ssh -vT git@github.digitalglobe.com

    然后确保在您的构建中,您在开始时运行此操作 . eval“$(ssh-agent -s)”ssh-add~ / .ssh / id_rsa

  • 2

    1)cd到项目目录

    2) git status

    3) git checkout -f HEAD

    4)通过再次拉下主人确认成功,以确保你的回购看上去不完整是最新的

    如果您从Bitbucket克隆repo时从Visual Studio的Git中获得有问题的错误,则此方法有效

相关问题