`

[转]Git Push Fails - fatal: The remote end hung up unexpectedly

git 
阅读更多

Symptoms

When users try to run "git push" the following error message is shown:

$ git push
Counting objects: 2332669, done.
Delta compression using up to 16 threads.
Compressing objects: 100% (360818/360818), done.
error: RPC failed; result=22, HTTP code = 411
fatal: The remote end hung up unexpectedly
Writing objects: 100% (2332669/2332669), 483.30 MiB | 114.26 MiB/s, done.
Total 2332669 (delta 1949888), reused 2330461 (delta 1949349)
fatal: The remote end hung up unexpectedly

Cause

The "Smart HTTP" protocol in Git uses "Transfer-Encoding: chunked" in POST requests when it contains packed objects greater than 1MB in size.

Some proxy servers, like Nginx, do not support this transfer encoding by default, and the requests will be rejected before they get to Stash. Because of this, the Stash logs will not show any extra information.

Workaround

The default size at which the Git client starts "chunking" the request is 1MB. Users can change this setting using:

git config http.postBuffer 524288000

Where the number used will have to be large enough for the push. The example above is 500MB. In the case of an initial push when setting up Stash, this is the size of the repository.

Unfortunately, each user has to set this value, and it will need to be large enough for all the Git pushes.

Resolution

Configure the proxy server to handle "Transfer-Encoding: chunked". For Nginx the HttpChunkinModule module will need to be installed.

原文网址:https://confluence.atlassian.com/display/STASHKB/Git+Push+Fails+-+fatal%3A+The+remote+end+hung+up+unexpectedly

 

 

 

error: RPC failed; result=22, HTTP code = 413
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date

 

使用了Nginx 1.4并且按照安装文档的提示使用了默认的配置文件:

[code lang="shell"]sudo cp lib/support/nginx/gitlab /etc/nginx/sites-available/gitlab
sudo ln -s /etc/nginx/sites-available/gitlab /etc/nginx/sites-enabled/gitlab[/code]

而这个默认的lib/support/nginx/gitlab配置文件却没有设定允许的最大POST大小,因此Nginx使用了默认值2M为允许的最大POST大小,而Kaijia提交大小已经超过了2M,因此上传到一半会出现中断。明白原因后解决方法就非常简单了,只需要在GitLab Nginx配置文件(/etc/nginx/sites-available/gitlab)中的server段中增加:

[code lang="shell"]client_max_body_size 128M;[/code]

将128M修改为你希望允许的最大POST大小,保持配置文件后重新启动Nginx,就可以正常上传了。

 

http://www.kaijia.me/2013/10/gitlab-fatal-the-remote-end-hung-up-unexpectedly-solved/

分享到:
评论

相关推荐

    error: RPC failed; result=18, HTTP code = 200 fatal: The remote end hung up unexpectedly

    result=18, HTTP code = 200 fatal: The remote end hung up unexpectedly fatal: 过早的文件结束符(EOF) fatal: index-pack failed Solution for failed with error: RPC failed; result=18, HTTP code = 200 ...

    解决fatal:remote error:You can’t push to git://github.com/username/*.git问题的办法

    解决fatal:remote error:You can’t push to git://github.com/username/*.git问题的办法 今天Git push的时候 fatal:remote error: You can't push to git://github.com/username/*.git Use git@github....

    Git-2.28.0-64-bit.exeGit-2.28.0-64-bit.exe

    Git-2.28.0-64-bit.exe Git-2.28.0-64-bit.exe Git-2.28.0-64-bit.exe

    Jenkins拉代码提示端口错误

    - **fatal: Could not read from remote repository**:致命错误:无法从远程仓库读取。 - **可能原因**:除了上述公钥认证失败外,还可能是网络问题或者远程仓库不存在。 #### 三、解决方案 ##### 1. 检查SSH...

    idea git push文件过大解决方法

    git-fatal the remote end hung up unexpectedly 解决方法

    Git官方最新版下载 Git-2.18.0-64-bit 64位Windows版本

    Git-2.18.0-64-bit是Git官方发布的一个针对64位Windows系统的更新版本,旨在提供更稳定、高效和功能丰富的代码管理体验。 1. Git的基本概念: - 版本控制:Git的核心功能是版本控制,它记录了代码的每一次修改,...

    GIT CHEAT SHEET常用命令汇总

    - 命令:git push <remote> --delete - 功能:删除远程仓库的指定分支。 4. 下载远程仓库的变更 - 命令:git fetch <remote> - 功能:从远程仓库下载变更,但不自动合并。 5. 合并远程分支到当前分支 - 命令...

    git-push-each:git push-reach -- 将每个提交推送到自己的分支

    git-push-each 将一个分支中的所有提交推送到自己的分支,一次提交一个! \o/ 什么为什么!?... ./git-push-each [--clean] <remote> push each commit from stdin to its own branch. OPTIONS

    git-rebase-reword:修改任何git commit不仅要持续

    git-rebase-reword git-rebase-reword是一个简单的git命令,以与修改相同的方式来更改一个提交(最后一个或更旧的提交) 文献资料 它是基于对rebase交互操作的名称来命名的,以补充提交“ reword”。 参见和 -...

    git-auto-push:用于自动推送由工具生成的文件的脚本

    git-auto-push 用于自动推送由工具生成的文件的脚本所需工具须藤apt-get install inotify-tools ssh-没有它,您每次都需要输入密码用法-w " /abs/path/to/file-to-watch " -s " /abs/path/to/repo " -d " relative-...

    git-remote-hypergit:git remote for hypergit

    npm install --global git-remote-hypergit 用法 git clone hypergit://... 贡献者 使用hypergit,每个项目参与者都有自己的hypergit回购。 没有“起源”中央权威。 @noffle: hypergit://7ea2a9970f74f3a4a...

    repo,解决fatal: Cannot get https://gerrit.googlesource.com/git-repo

    18年7月更新,清华镜像,完美解决 Yocto,Android fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle 错误,绕开GFW

    git-browse-remote:打开 Web 浏览器以查看远程 Git 存储库

    安装 [sudo] gem install git-browse-remote用法 git browse-remote [-r|--remote <remote>] [--top|--rev|--ref] [-L ] [<commit> | <remote>] [<file> | ]git-browse-remote通过git web--browse打开您的 Web ...

    gitolite-git-lfs:用于 git-lfs 集成的示例 gitolite 命令(适用于 django-git-lfs)

    gitolite-git-lfs 这是 gitolite 的概念证明 git-lfs 存储服务器助手。 它已被编写为与 django-git-lfs 配合使用,请参阅: : 要求 Gitolite Perl:JSON 和 LWP (HTTP) 安装 在 gitolite 中设置 LOCAL_CODE。 ...

    git-cheatsheet

    `git-cheatsheet` 是一份关于 Git 的操作指南,旨在帮助用户快速掌握 Git 的基本命令与用法。Git 作为一款分布式版本控制系统,广泛应用于软件开发过程中,用于跟踪代码变更、管理项目历史版本等。此文档包含了 Git ...

    Git-2.23.0-64.zip

    Git-2.23.0-64.zip这个压缩包包含了Git的最新客户端,专为64位操作系统设计,版本号为2.23.0。在本文中,我们将深入探讨Git的基本概念、主要功能、安装过程以及如何开始使用这个版本。 1. **Git的基本概念**: - *...

    leetcode答案-git_collect_sub:git_collect_sub

    leetcode 答案 【toc】 git_collect_sub 个人收集的有用项目,使用git submodule方式,引用已有项目。 项目环境 submodule的使用 参考: ...unexpectedly fatal: early EOF fatal: index-pack failed git

    git常用命令.docx

    - 命令: `git push <remote> :<branch>` - 描述: 删除远程仓库中的分支。 - 注意事项: 确认该分支不再需要。 - **推送标签** - 命令: `git push --tags` - 描述: 将本地的所有标签推送到远程仓库。 - 注意...

    git-remote-origin-url:获取Git存储库的远程源URL

    git-remote-origin-url 获取Git存储库的远程源URL安装 $ npm install git-remote-origin-url用法 const gitRemoteOriginUrl = require ( 'git-remote-origin-url' ) ;( async ( ) => {console . log ( await ...

    taco-git-push-deploy:git push与taco一起部署

    taco-git-push-deploy git push与部署 npm install -g taco-git-push-deploy 用法 首先进入您要使用git push部署的应用程序 cd my-app 确保此应用具有包含name字段的package.json。 然后跑 # substitute maf@...

Global site tag (gtag.js) - Google Analytics